题目:
1.JS中使用typeof能得到哪些类型
2.何时使用'===',何时使用'=='
3.JS有哪些内置函数
4.JS变量按照存储方式分为哪些类型,并描述其特点
5.如何理解JSON
知识点#####
- 值类型vs引用类型
按照存储方式分为值类型和引用类型
引用类型 :数组、对象、null、函数。
其他是值类型。
//值类型
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
引用类型:对象、数组、函数,由于引用类型占用内存空间较大,所以会出现公用内存空间的情况,变量a,b是指向某个内存空间的指针。而var b=a时,其实是b又指向了与a相同的内存空间,{age:20}仅存在一份。
- typerof运算符详解
typeOf有五种基本类型。
typeof undefined //undefined typeof 'abc' //string typeof 123 //number typeof true //boolean typeof {}// object typeof [] // object typeof null // object typeof console.log //function
后四种都是引用类型,但typeof只能区分出函数,和值类型。
以下情况会发生强制类型转换:
- 字符串拼接
'=='需要慎用,会试图进行类型转换使前后相等
- if语句
var a=true; if(a){ //true } var b = 100; if(a){ //true } var a = ''; if(a){ //false }
- 逻辑运算符
console.log(10 & 0) //0 转换为true&&0 console.log(''||'abc') //abc 转换为false||'abc' console.log(!window.abc) //true !undefined为true
- undefined 和 is not defined 不同,后者是报错,前者是未定义
解题#####
1.JS中使用typeof能得到哪些类型
undefined,string,number,boolean,object,function
2.何时使用'===',何时使用'=='
//仅有这种情况使用'== 'if(obj.a==null){ //此时条件相当于obj.a===null||obj.a===undefined,简写形式 //这是jQuery源码中推荐的写法 }
除此之外,其它情况均建议使用'==='
3.JS有哪些内置函数
Object,Array,Boolean,Number,String,Function,Date,RegExp,Error
4.JS变量按照存储方式分为哪些类型,并描述其特点
分为值类型和引用类型,值类型可以将数据分块存储在内存中,但是引用类型是多个变量共用一个内存块,引用类型的赋值是指定了一个指针,并不是真正的值的拷贝,它们之间是会相互干预的。
5.如何理解JSON
JSON是JS中的一个内置对象,也是一种数据格式
JSON.stringify({a:10,b:20}) //将对象转换为字符串 JSON.parse('{"a":10,"b":20}') //把字符串转换为对象