js面试题知识点全解(一变量类型和计算)

时间:2022-06-14 13:29:52

1.js中使用typeof能得到哪些类型

2.何时使用=====

3.js中的内置函数

4.js变量按存储方式区分为哪些类型,并描述其特点

5.如何理解json

以下对这些问题的知识点做一些总结:

1.考点:js变量类型

 typeof undefined //undefined
typeof 'killua' //string
typeof 215 //number
typeof true //boolean
typeof {} //object
typeof [] //object
typeof null //object
typeof console.log //function // typeof运算符6种类型:
// undefined,string,number,boolean,object,function
// 前4个是值类型,后4个是引用类型,typeof只能区分值类型的详细类型,对引用类型无法区分,只能区分function类型
 

2.值类型:每个变量可以存储自己的值,不会相互影响

var a=100;
var b=a;
a=200;
console.log(b);//

   引用类型(对象,数组,函数):可以无限扩张属性,内存公用空间

var c={age:10};
var d=c; //age是一份,只是d和c同时都指向它
d.age=20;
console.log(c.age);//

3.变量计算-强制类型转换

// 1.字符串拼接
var a=100+10//
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//
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);//
//引用类型(对象,数组,函数),c和d同时指向age:10,
//可以无限扩张属性,内存公用空间(如果属性比较多,内存公用就会比较方便,所以要引用类型),互相会受干扰
var c={age:10};
var d=c;//age是一份,只是d和c同时都指向它
d.age=20;
console.log(c.age);//

问:如何理解json

    //json 是内置在js语法里的对象,也是一种数据格式,json有两个API
JSON.stingify({a:10,b:20}) //把对象变换成字符串
JSON.parse('{"a":10,"b":20}') //把字符串变换成对象