一、变量类型与计算
Q:1、JavaScript中使用typeof能得到那些类型?
undefined,string,number,boolean,object,function
2、何时使用'==='与'=='?
//仅有这种情况使用'==' if(obj.a==null){ //此时条件相当于obj.a===null||obj.a===undefined,简写形式 //这是jQuery源码中推荐的写法 }
此外,全部建议使用'==='
3、JavaScript的内置函数有哪些?
Object,Array,Boolean,Number,String,Function,Date,RegExp,Error
4、JavaScript变量按照存储方式分为那些类型,描述一下特点。
分为值类型和引用类型,值类型可以将数据分块存储在内存中,但是引用类型是多个变量共用一个内存块,引用类型的赋值是指定了一个内存地址,并不是真正的值的拷贝,它们之间是会相互干预的。
5、如何理解JSON?
JSON是JavaScript的一个内置对象
JSON.stringify({a:10,b:20}) //将对象转换为字符串 JSON.parse('{"a":10,"b":20}') //把字符串转换为对象
(1)值类型与引用类型
a、值类型
// 值类型 var a = 100; var b = a; a = 200; console.log(b); //100
b、引用类型
// 引用类型 var a = { age: 20 }; var b = a; b.age = 21; console.log(a.age);// 21
值类型能存储各自的值,不会相互影响。a变量存的是100,将b赋值为a的时候,b存储的也是100。引用类型(对象、数组、函数)指向某个内存空间地址。变量a、b都指向某个内存空间地址,当声明变量b,并赋值为a的时候,其实是把a的引用地址,赋值给了b。{age:20}是一份,当执行b.age = 21的时候,a.age也是21。
(2)、typeof运算符详解
typeof undefined;//undefined typeof 'abc'; //string typeof '123; //number typeof NaN; //number typeof true; //boolean typeof {}; //object typeof []; //object typeof null; //object typeof console.log; //function
typeof不能详细区分引用类型(对象、数组)的详细类型,但是可以详细区分function以及所有值类型。
(3)、字符串拼接
var a = 100 + 10; //110 var b = 100 + '10'; //10010 100 = '100' ;//true 0 == ''; //true null == undefined; //true
(4)、if语句
var a = true; if ( a ) { //....执行 } var b = 100; if ( b ) { //....执行 } var c = '' if ( c ) { //....不执行 }
(5)、逻辑运算符
console.log(10 && 0) //0 转换为true&&0 console.log(''||'abc') //abc 转换为false||'abc' console.log(!window.abc) //true !undefined为true