一、变量类型和计算
题目:
(1)JS中使用typeof能得到哪些类型?
typeof能确定值类型的具体类型,不能确定引用类型的具体类型
(2)何时使用===? 何时使用==?
一般建议都使用===,只有下面两种判断对象属性和函数参数是否存在的情况下使用==
- 判断对象属性是否存在
if(obj.a == null){
//这里相当于obj.a === null || obj.a === undefined,简写形式
//这里jQuery源码中推荐的写法
}
- 判断函数参数是否存在
function fn(a,b){
if(a == null){
...
}
}
(3)JS中有哪些内置对象?
Object Array Function String Number Boolean Date RegExp Error
(4)JS变量按照存储方式区分为哪些类型,并描述其特点?
值类型和引用类型,值类型的值复制以后修改不会相互影响,引用类型的赋值是变量指针的赋值,他们值得修改是相互干预的
(5)如何理解JSON
JSON是JS的一个对象
知识点
(1)变量类型
- 值类型
var a=100;
var b=a;
a=200;
console.log(b); //100
- 引用类型(对象,数组,函数),最大的特点就是无限制扩大属性
var a={age:20};
var b=a;
b.age=21;
console.log(a.age); //21
- typeof 运算符,只能区分值类型的具体类型
console.log(typeof undefined);//undefined
console.log(typeof 'abc');//string
console.log(typeof 123);//number
console.log(typeof true);//boolean
console.log(typeof {});//object
console.log(typeof []);//object
console.log(typeof null);//object
console.log(typeof console.log);//function
(2)变量计算-强制类型转换
- 字符串拼接
var a=100+10;
var b=100+'10';
console.log(a);//110
console.log(b);//10010
- == 运算符
console.log(100 == '100');//true
console.log(0 =='');//true
console.log(null ==undefined);//true
- if 语句,0,NaN,' ',null,undefined,false这几个都为false
var a=100;
if(a){
...
}
- 逻辑运算
console.log(10 && 0);//0
console.log('' || 'abc');//abc
console.log(!window.abc);//true
//判断一个变量会被当成 true 还是 false
var b=10;
console.log(!!b);
(3)如何理解JSON,JSON只不过是一个JS对象而已
JSON.stringify({a:10,b:20});//把对象转化成字符串
JSON.parse('{"a":10,"b":20}');//把字符串转化成对象