基本的概念
-
区分大小写
-
标识符
- 第一个字符必须是字母, _,$
- 其他字符可以是字母,下划线,美元符号,数字
-
严格模式
- 不同的解析与执行模型
-
关键字
- break, do, instanceof, typeof, catch,....
-
保留字
- abstract, enum....
-
变量
-
松散类型,表示可以饥接任何类型
-
全局变量
function test(){ message = 'hi' 全局变量 } -
可以定义多个变量
var message='hi', found=false, age=29;
-
-
typeof 操作符 返回某个字符串
- ‘undefined'
- 'boolean'
- 'string'
- 'number'
- 'object'
- 'function'
- instanceof 判断对象是否属于某个对象类型
-
== 与 ===, 0、1与true , false
-
当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 如果类型不同,直接就是false.
console.log(null === undefined)//false console.log(null == undefined)//true console.log(null === 0)//false console.log(null == 0)//false 不可能转为相同类型 console.log(null === false)//false console.log(null == false)//false console.log(0 === undefined)//false console.log(0 == undefined)//false console.log(0 === false)//false console.log(0 == false)//true console.log(1 === true)//false console.log(1 == true)//true console.log('--------------')
-
NaN 非数值 not a number
- NaN 不等于NaN
- isNaN 判断
数据类型
-
Undefined
-
var a; 声明,未初始化
-
不等于 尚未定义的变量,
var age;
alert(message)报错
-
typeof 对 age, message都可以返回’undifined'
-
-
Null
- 空对象指针, 用typeof 判断会返回object
- 要用来保存对象,最后初始化为null
-
Boolean
-
可转为true , 任何非空字符串, 任何非零数字值,任何对象
-
可转为false, ""空串,o, NaN, null, undefined
if(0){ console.log(0) } if(1){ console.log(1) } if(null){ console.log(null) } if(undefined){ console.log(undefined) } if(aa){//报错 console.log('aa') } var a = {'d': 1} if (a) { console.log(a);//{'d':1} }
-
-
Number
- 表示整数,浮点值
- 整数,可以用10进制,8,16进制
- 数值范围: 不能保全世界上所有的数值, min: 5e-324, max: 1.79....e+308, 表示不了转为负无穷,或者正无穷
- 判断是否在范围内, isFinite(result)
-
String 16位的Unicode字符组成的字符序列
- 长度 .length
- 字符字面量 \n 换行,表示一个字符
- 一旦创建,不能改变
- toString返回字符串的副本
----------以上是基本数据类型-----------------------------------------
-------对象类型是复杂数据类型
-
Object
- var o = new Object //有效,但不推荐省略括号
- constructor 保存作创建当前对象的函数
- hasOwnProperty(propertyName) 检查是否有属性于当前对象的实例中,而不是原型中
- isPrototypeOf(object) 检查是否ojbect为原型
- toString
- valueOf 返回对象字符串
数值转换
Numer 可以把非数值转为数值
parseInt()//只能转字符串
parseFloat()//只能转字符串
Number() 函数转换规则
-
true->1, false->0
-
null->0
-
undefined -> NaN
-
字符串
- 只包含数字,带+号,-号,转为数字
- 浮点字符串,转为浮点数
- 十六进制,转为十进制
- 空串为0
- 上面格式外,NaN
- 对象,先调用对象valueOf方法,转换,如果是NaN, 会继续调用toString,进行转换