JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
2.1 JS有哪些数据类型?
JavaScript语言的每一个值,都属于某一种数据类型。JavaScript的数据类型,共有六种。分别是undefined、null、boolean、number、string、object(ES6新增第七种Symbol一种数据类型,它的实例是唯一且不可改变的。类型的值)
1)Undefined:Undefined类型只有一个值,即特殊值undefined。在使用var声明变量,但未对其加以初始化时,这个变量值就是undefined。
2)Null:Null类型是第二个只有一个值的数据类型。其特殊值就是Null。从逻辑角度上看,null是一个空的对象指针。而这也正是使用typeof操作符检测null值,会返回“object”的原因。
3)Boolean:即布尔类型,该类型有两个值:true
false。需要注意的是,Boolean类型的字面值true和false是区分大小写的。也就是说,True和False(以及其它的混合大小形式)都不是Boolean值,只是标识符。
4)Number:该类型的表示方法有两种形式,第一种是整数,第二种为浮点数。整数:可以通过十进制,八进制,十六进制的字面值来表示。浮点数:就是该数值中必须包含一个小数点,且小数点后必须有一位数字。
5)String:String类型用于表示由零或多个16位的Unicode字符组成的字符序列,即字符串。至于用单引号,还是双引号,在js中还是没有差别的。记得成对出现。
6)Object:Object数据类型,称为对象,是一组数据和功能(函数)的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。在其中添加不同名(包含空字符串在内的任意字符串)的属性。
2.2 JS数据类型的常用方法
这里介绍6种:Boolean()、toString()、String()、isNaN()、Number()、parseInt()。
实例:demo1
注:看demo的时候,打开控制台看console.log()的结果。
怎么样判断各种数据类型?
这里介绍2种方法:typeof、Object.prototype.toString
1)typeof:用来判断各种数据类型,有两种写法:typeofxxx,typeof(xxx)。
实例:demo2
总结:如果右边的是基本类型,则typeof会尝试得到最基本的类型,比如number,string等等,如果是函数名,那么则返回function,这里Object,Number,String,等等都可以看成函数名,如果右边是一个基本的对象,则返回object(返回的都是小写哦)。
注:我们发现typeof null,结果返回了object,这是一个很早之前的BUG,一直沿用至今。
试用范围:如果通过typeof来判断类型,适用于判定基本类型,或者判断是否为函数(function)。
2)Object.prototype.toString。
实例:demo3
需要注意的是,必须通过Object.prototype.toString.call来获取,而不能直接new Date().toString(),从原型链的角度讲,所有对象的原型链最终都指向了Object,按照JS变量查找规则,其他对象应该也可以直接访问到Object的toString方法,而事实上,大部分的对象都实现了自身的toString方法,这样就可能会导致Object的toString被终止查找,因此要用call来强制执行Object的toString方法。
JavaScript类型转换有哪些?以及如何转换?
更多请参考:http://www.runoob.com/js/js-type-conversion.html
w3school
脚本之家
Q1:如何判断是否是null值
使用typeof会返回object
instanceof会报错
constructor会报错
Object.prototype.toString.call返回[object Null]
Q2:typeof的局限性
if(typeof a!=”undefined”){alert(“ok”)},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错,对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性
Q3:判断NaN:
var tmp = 0/0;
if(isNaN(tmp)){
alert(“NaN”);
}