前端JavaScript面试技巧笔记(1)

笔记(1)——(6)包含

JS变量类型和计算
原型和原型链
闭包和作用域
异步和单线程
日期,随机数,常用API

知识点:

    #变量类型

    #值类型&引用类型

js中的数据类型有以下几种:

Number   Boolean   undefined     Object   Function    String  Null

基本类型:Number Boolean  String  undefined null

引用类型:Object  Function  数组

基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的

对于a=b这样的赋值操作,基本类型和引用类型的存储方式是有区别的,基本类型是在内存中另外开辟一个空间,
然后将和前面一样的值放进去,a或b其中一个值改变不会影响另一个;而引用类型的赋值是创建一个新的指针,得
到前一个变量所指的存储地址,ab所指的是同一个值,所以一个变了另一个也会变。

    #typeof运算符

     typeof运算符可返回情况:

前端JavaScript面试技巧笔记(1)_第1张图片

    typeof只能区分值类型;引用类型中只能区分出函数;

    #强制类型转换

    会发生类型转换的情况:

(1)字符串拼接
var b = 100 + '10' //'10010'

(2)==运算符
100 == '100' //true
0 == '' //true
null == undefined //true

(3)if语句
var b = 100;
if(b) //true
var c = '';
if(c) //false

(4)逻辑运算
console.log(10 && 0) //0,把10看作true
console.log('' || 'abc') //'abc',把''看作false
console.log(!window.abc) //true,把里面的看作false

两个!!可以用来测试一个变量会被转换成true还是false

   总结在if中会被判断成false的值

0
NaN
''
null
undefined
false

    #补充:创建对象方法:

(1)使用对象初始化程序创建对象

用法:objectName = {property1:value1, property2:value2,..., propertyN:valueN}

objectName 是新对象的名字,每个 propertyI 是一个标识符(可能是一个名字、数字或字符串直接量),每一个 valueI 是赋予属性 propertyI 值的表达式。objectName 和赋值是可选项。

例:myHonda = {color:"red",wheels:4,engine:{cylinders:4,size:2.2}}

(2)使用构造函数创建对象

用法:用构造函数定义对象类,用 new 运算符创建对象实例。

例:
function car(make, model, year) {
     this.make = make
     this.model = model
     this.year = year
}

mycar = new car("Eagle", "Talon TSi", 1993);

    #补充:数组、函数添加属性

数组也可以像对象一样添加属性

如:数组

    var arr = [1,2,3];

    arr.age = 4; // [1,2,3,age:4]

同样的函数也可以添加属性

如:函数

    function fn(){};

    fn.age = 4; //fn.age = 4

所以引用类型都可以使用属性。

    # == 与 ===的区别

"=="会先把两端的变量试图转换成相同类型,然后再比较;

"==="会直接去比较类型是否相同,如果类型相同则继续比较值是否相同。

一般使用==来判断是否为null的时候被判断的参数已经被定义。

    #内置函数和内置对象

内置函数:

function Object()

function Function()

function Array()

内置对象:

Math

JSON

   参考:

【1】ljuyi js——引用类型和基本类型 https://www.cnblogs.com/ljuyi/p/6100071.html

【2】JS中大括号的用法 http://tk-zhang.javaeye.com/blog/451040 
https://blog.csdn.net/lbake/article/details/7097505

 

你可能感兴趣的:(JavaScript)