脚本宝典收集整理的这篇文章主要介绍了js实例教程-js的数据类型详解,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。
基本数据类型: Undefined;Null;Boolean;Number;String
复杂数据类型: Array,Date,Object(注: 与java对象有点区别的,js对象可以添加属性)
object本质上是由一组无序的名值对组成的
(js数据类型可以更改,但是不建议改) VAR msg = "message"; msg = 1; 有效,但不建议使用
tyPEof操作符(检测给定变量的数据类型),可能返回的结果如下:
“undefined”——如果这个值未定义(对未初始化和未声明的变量);
“boolean”——如果这个值是布尔值;
“string”——如果这个值是字符串;
“number”——如果这个值是数值;
“object”——如果这个值是对象或null或[ ];
“function”——如果这个值是函数。
注意: typeof 是一个操作符而不是函数,因此圆括号尽管可以使用,但不是必需的。 eg: var message = "some string"; alert(typeof message); // "string" alert(typeof(message)); // "string"
instanceof 运算符用来检测 constructor.PRototype 是否存在于参数 object 的原型链上。
Undefined类型
声明了但是没有初始化的变量被默认赋值为undefined;未声明的变量使用会报错,只除了使用typeof
undefined === void 0 //true
Null类型
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null 而不是其他值
Boolean类型(true 和false)
要将一个值转换为其对应的Boolean 值,可以调用转型函数Boolean()
转换规则:
数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 ""(空字符串) Number 任何非零数字值(包括无穷大) 0和NaN Object 任何对象 null Undefined n/a undefined n/a(或N/A),是not applicable 的缩写,意思是“不适用
Number类型
注意: 浮点数值计算会产生舍入误差的问题(例如: 0.1 + 0.2 = 0.30000000000000004)
数值范围: 最小值 Number.MIN_VALUE 5e-324 -infinITy(负无穷)
最大值 Number.MAX_VALUE 1.7976931348623157e+308 Infinity(正无穷)
当数值超过范围时,会返回Infinty,这个值是不可以参与计算的
可使用isFinite()函数判断,若在,为true
10/0 // 返回Infinity
NaN,即非数值(Not a Number)是一个特殊的数值 这个数值用于表示一个本来要返回数值的操作数未返回数值的情况 注意: 任何涉及NaN 的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。 NaN 与任何值都不相等,包括NaN 本身。 eg: alert(NaN == NaN); //false isNaN()可判断值是否为数字,若是,返回false 注意:isNaN()会尝试将其他类型的转化为数字,若失败,为非数字: eg: alert(isNaN(NaN)); //true alert(isNaN(10)); //false(10 是一个数值) alert(isNaN("10")); //false(可以被转换成数值10) alert(isNaN("blue")); //true(不能转换成数值) alert(isNaN(true)); //false(可以被转换成数值1)
数值转换: Number(): 可用于任何类型转为数字 eg: var num1 = Number("Hello world!"); //NaN,如果含有任何不能转为数字的字符,都是NaN(undefined) var num2 = Number(""); //0,空字符串 var num3 = Number("000011"); //11,忽略前面的0;会识别16进制(0x12->18);识别浮点数 var num4 = Number(true); //1,true-1;false-0 parseint();parseFloat(): 仅用于字符串转数字;如果第一个字符不是数字或负号.返回NaN,包括空字符串; 如果是,继续解析,直到碰到不是数字的,忽略后面的所有字符 var num1 = parseInt("1234blue"); // 1234 var num2 = parseInt(""); // NaN var num3 = parseFloat("22.34.5"); //22.34 var num4 = parseFloat("0908.5"); //908.5 parseInt()不识别浮点数,碰到小数点就会开始忽略; 识别2进制8进制和16进制,一般传2个参数(第二个为进制,包括十进制) var num5 = parseInt(22.5); // 22 var num6 = parseInt("AF", 16); //175 var num7 = parseInt("AF"); //NaN parseFloat()如果没有小数点,返回整数;只识别10进制 var num8 = parseFloat("1234blue"); //1234 var num9 = parseFloat("0xA"); //0
String类型
ECMAScript 中的字符串是不可变的,改变都是新创建的字符串,销毁原来的字符串
toString(): 几乎所有类型都有 toString()方法,但注意 null 和 undefined 没有
数字类型的可以添加参数,参数为进制数
String(): 这个函数能够将任何类型的值转换为字符串,null 和 undefined 返回对应的字面量
Object类型
Object 的每个实例都具有下列属性和方法:
- constructor:保存着用于创建当前对象的函数,构造函数(constructor) 就是 Object()。
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty(“name”))。
- isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
- propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for-in 语句来枚举。与 hasOwnProperty()方法一样,作为参数的属性名必须以字符 串形式指定。
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。 toString():返回对象的字符串表示。
- valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString()方法的返回值 相同。
数据类型的转换: 隐式:(直接转,按规则) String+number=String String+boolean=String/boolean number+boolean=number boolean+boolean=number 显示:(使用相应的方法转) xxx.toString() parseInt(xxx) parseFloat() isNaN(xxx)----true/false (is not a number)
基本数据类型: Undefined;Null;Boolean;Number;String
复杂数据类型: Array,Date,Object(注: 与java对象有点区别的,js对象可以添加属性)
object本质上是由一组无序的名值对组成的
(js数据类型可以更改,但是不建议改) var msg = "message"; msg = 1; 有效,但不建议使用
typeof操作符(检测给定变量的数据类型),可能返回的结果如下:
“undefined”——如果这个值未定义(对未初始化和未声明的变量);
“boolean”——如果这个值是布尔值;
“string”——如果这个值是字符串;
“number”——如果这个值是数值;
“object”——如果这个值是对象或null或[ ];
“function”——如果这个值是函数。
注意: typeof 是一个操作符而不是函数,因此圆括号尽管可以使用,但不是必需的。 eg: var message = "some string"; alert(typeof message); // "string" alert(typeof(message)); // "string"
instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。
Undefined类型
声明了但是没有初始化的变量被默认赋值为undefined;未声明的变量使用会报错,只除了使用typeof
undefined === void 0 //true
Null类型
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null 而不是其他值
Boolean类型(true 和false)
要将一个值转换为其对应的Boolean 值,可以调用转型函数Boolean()
转换规则:
数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 ""(空字符串) Number 任何非零数字值(包括无穷大) 0和NaN Object 任何对象 null Undefined n/a undefined n/a(或N/A),是not applicable 的缩写,意思是“不适用
Number类型
注意: 浮点数值计算会产生舍入误差的问题(例如: 0.1 + 0.2 = 0.30000000000000004)
数值范围: 最小值 Number.MIN_VALUE 5e-324 -Infinity(负无穷)
最大值 Number.MAX_VALUE 1.7976931348623157e+308 Infinity(正无穷)
当数值超过范围时,会返回Infinty,这个值是不可以参与计算的
可使用isFinite()函数判断,若在,为true
10/0 // 返回Infinity
NaN,即非数值(Not a Number)是一个特殊的数值 这个数值用于表示一个本来要返回数值的操作数未返回数值的情况 注意: 任何涉及NaN 的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。 NaN 与任何值都不相等,包括NaN 本身。 eg: alert(NaN == NaN); //false isNaN()可判断值是否为数字,若是,返回false 注意:isNaN()会尝试将其他类型的转化为数字,若失败,为非数字: eg: alert(isNaN(NaN)); //true alert(isNaN(10)); //false(10 是一个数值) alert(isNaN("10")); //false(可以被转换成数值10) alert(isNaN("blue")); //true(不能转换成数值) alert(isNaN(true)); //false(可以被转换成数值1)
数值转换: Number(): 可用于任何类型转为数字 eg: var num1 = Number("Hello world!"); //NaN,如果含有任何不能转为数字的字符,都是NaN(undefined) var num2 = Number(""); //0,空字符串 var num3 = Number("000011"); //11,忽略前面的0;会识别16进制(0x12->18);识别浮点数 var num4 = Number(true); //1,true-1;false-0 parseInt();parseFloat(): 仅用于字符串转数字;如果第一个字符不是数字或负号.返回NaN,包括空字符串; 如果是,继续解析,直到碰到不是数字的,忽略后面的所有字符 var num1 = parseInt("1234blue"); // 1234 var num2 = parseInt(""); // NaN var num3 = parseFloat("22.34.5"); //22.34 var num4 = parseFloat("0908.5"); //908.5 parseInt()不识别浮点数,碰到小数点就会开始忽略; 识别2进制8进制和16进制,一般传2个参数(第二个为进制,包括十进制) var num5 = parseInt(22.5); // 22 var num6 = parseInt("AF", 16); //175 var num7 = parseInt("AF"); //NaN parseFloat()如果没有小数点,返回整数;只识别10进制 var num8 = parseFloat("1234blue"); //1234 var num9 = parseFloat("0xA"); //0
String类型
ecmascript 中的字符串是不可变的,改变都是新创建的字符串,销毁原来的字符串
toString(): 几乎所有类型都有 toString()方法,但注意 null 和 undefined 没有
数字类型的可以添加参数,参数为进制数
String(): 这个函数能够将任何类型的值转换为字符串,null 和 undefined 返回对应的字面量
Object类型
Object 的每个实例都具有下列属性和方法:
- constructor:保存着用于创建当前对象的函数,构造函数(constructor) 就是 Object()。
- hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty(“name”))。
- isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
- propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for-in 语句来枚举。与 hasOwnProperty()方法一样,作为参数的属性名必须以字符 串形式指定。
- toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。 toString():返回对象的字符串表示。
- valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString()方法的返回值 相同。
数据类型的转换: 隐式:(直接转,按规则) String+number=String String+boolean=String/boolean number+boolean=number boolean+boolean=number 显示:(使用相应的方法转) xxx.toString() parseInt(xxx) parseFloat() isNaN(xxx)----true/false (is not a number)
觉得可用,就经常来吧!Javascript技巧 脚本宝典 欢迎评论哦! js技巧,巧夺天工,精雕玉琢。小宝典献丑了!
以上是脚本宝典为你收集整理的js实例教程-js的数据类型详解全部内容,希望文章能够帮你解决js实例教程-js的数据类型详解所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。