js面试题知识点全解(一变量类型和计算)
1.js中使用typeof能得到哪些类型
2.何时使用===和==
3.js中的内置函数
4.js变量按存储方式区分为哪些类型,并描述其特点
5.如何理解json
以下对这些问题的知识点做一些总结:
1.考点:js变量类型
1 typeof undefined //undefined 2 typeof 'killua' //string 3 typeof 215 //number 4 typeof true //boolean 5 typeof {} //object 6 typeof [] //object 7 typeof null //object 8 typeof console.log //function 9 10 // typeof运算符6种类型: 11 // undefined,string,number,boolean,object,function 12 // 前4个是值类型,后4个是引用类型,typeof只能区分值类型的详细类型,对引用类型无法区分,只能区分function类型
2.值类型:每个变量可以存储自己的值,不会相互影响
var a=100; var b=a; a=200; console.log(b);//100
引用类型(对象,数组,函数):可以无限扩张属性,内存公用空间
var c={age:10}; var d=c; //age是一份,只是d和c同时都指向它 d.age=20; console.log(c.age);//20
3.变量计算-强制类型转换
// 1.字符串拼接 var a=100+10//110 var b=100+'10'//10010,number转换为string // 2.运算符 100=='100'//true 0==''//true,都可以转换为false null==undefined //true,都可以转换为false //if语句 var a=true; if(a){ } var b=100; if(b){ //把b强制转换为布尔类型 } var c=''; if(c){ //把c空字符串转换为false } //逻辑运算符-与、或、非 console.log(10 && 0) //0, 10转换为true, true && 0返回0 console.log('' || 'abc') //'abc', ''转换为false console.log(!window.abc) //true, window.abc返回为undefined,非false为true //判断一个变量会被当作true还是false var cc=100; console.log(!!cc);
4.变量计算-强制类型转换
// 1.字符串拼接 var a=100+10//110 var b=100+'10'//10010,number转换为string // 2.运算符 100=='100'//true 0==''//true,都可以转换为false null==undefined //true,都可以转换为false //if语句 var a=true; if(a){ } var b=100; if(b){ //把b强制转换为布尔类型 } var c=''; if(c){ //把c空字符串转换为false } //逻辑运算符-与、或、非 console.log(10 && 0) //0, 10转换为true, true && 0返回0 console.log('' || 'abc') //'abc', ''转换为false console.log(!window.abc) //true, window.abc返回为undefined,非false为true //判断一个变量会被当作true还是false var cc=100; console.log(!!cc);
问:何时使用===和==
if(obj.a==null){ //这里 相当于obj.a==null || obj.a==undefined,简写形式(jquery源码推荐的写法) //除了这个,其他地方全用=== }
问:js中的内置函数 --数据封装对象
Object
Array
Boolean
Number
String
Function
Date
RegExp
Error
问:js变量按存储方式区分为哪些类型,并描述其特点
// 值类型,每个变量可以存储自己的值,不会相互影响 var a=100; var b=a; a=200; console.log(b);//100 //引用类型(对象,数组,函数),c和d同时指向age:10, //可以无限扩张属性,内存公用空间(如果属性比较多,内存公用就会比较方便,所以要引用类型),互相会受干扰 var c={age:10}; var d=c;//age是一份,只是d和c同时都指向它 d.age=20; console.log(c.age);//20
问:如何理解json
//json 是内置在js语法里的对象,也是一种数据格式,json有两个API JSON.stingify({a:10,b:20}) //把对象变换成字符串 JSON.parse('{"a":10,"b":20}') //把字符串变换成对象