定义:
1.使用var关键字定义 2.其他跟Java类似变量类型
1.全局变量 在js中没有定义在方法内部的变量 (在非严格模式下)在js的方法中,不添加var的变量也是全局变量 “user strict”严格模式 2.局部变量 在js中定义在方法内部的变量变量的命名规则
1.和java一样数据类型 使用typeof加变量名可以查看变量的类型
1.undefined类型 定义的变量如果没有被赋值过,则变量类型为undefined
2.null类型 定义变量赋值为null 则变量类型就是null类型,null类型是一种 特殊的object类型 3.boolean 定义变量赋值为true false 则变量类型就为Boolean类型 4.string 定义变量赋值为“”或 ' ' 则变量类型为字符串类型在js中单引号双引号都 表示字符串 5.number 数值型 定义变量时赋值为一个数字或某些情况下转换而来的数字 都是数值型 1.整数型 2.浮点型 3.NaN 4.Infinity/-Infinity 6.object 对象类型手动数据类型的转换
1.String(); 2.Number(); 如果是字符串,遵循以下规则 如果字符串中只包含数字,则将其转换为十进制(忽略前导0) 如果字符串中包含有效的浮点格式,将其转换为浮点数值(忽略前导0) 如果是空字符串,将其转换为0 如果字符串包含非以上格式,则将其转换为NaN,比如‘absd12sda12131asd’ 3.Boolean(); 空字符串 0 nan undefined null 转化为布尔值都为false,其余皆为true55两个数据类型通过 == 比较时(左右两边数据类型不相同)
1.当number string Boolean 三者在相互比较时 不为number那一方 调用number()方法 2.null 和 undefined 互相相等 且和自己也相等 除此之外 这两者和其他任何数据都不相等 3.NaN相比较 跟任何比较堵不相等 NaN和自身都不相等 4.当number string boolean 三者和对象比较时 对象先调用toString()方法转换为字符串 5.对象前加!则强制得到false数据== 等于符 可能会发生数据类型的自动转换
=== 等同符 不会发生数据类型的自动转换