1.值类型
var a=100
var b=a
a=200
console.log(b) //100
2.引用类型(对象,数组,函数)(限制扩展属性)
var a = {age:20}
var b = a
b.age = 21
console.log(a.age) //21
3.typeof 运算符(只能区分值类型,除了函数类型)
typeof undefined //undefined
typeof 'abc' //string
typeof 123 //number
typeof true //boolean
typeof {} //object
typeof [] //object
typeof null //object
typeof console.log //function
4.变量计算-强制类型转换
字符串拼接
var a = 100+10 //110
var b = 100 + '10' // '10010'
==运算符
100 = '100' //true
0 == '' //true
null == undefined //true
逻辑运算
console.log(10 && 0) //0
console.log('' || 'abc') // 'abc'
console.log(!windows.abc) //true
//判断一个变量会被当做true还是false
var a= 100
console.log(!!a)
何时使用 === 何时使用 ==
if(obj.a == null){
//这里相当于 obj.a == null || obj.a === undefined 简写形式
}
5.JSON
JSON是js对象
JSON.stringify({a:10,b:20}) //把对象变成字符串
JSON.parse('{"a":10,"b":20}') //把字符串变成对象
6.构造函数
function Foo(name.age){
this.name = name
this.age = age
this.class= 'class-1'
//return this //默认只有这一行
}
var f = new Foo('张三',20)
7.构造函数扩展
var a = {} 其实是 var a =new Object()的语法糖
var a = [] 其实是 var a = new Array()的语法糖
funcation Foo(){...} 其实是var Foo = new Function(...)
-