zhengwei1949 / myblog

个人博客
10 stars 6 forks source link

前端面试题笔记 #30

Open zhengwei1949 opened 7 years ago

zhengwei1949 commented 7 years ago

前端面试课程笔记

面试题要学习的范围

基础知识

先从几道面试题说起

思考:

如何搞定所有的面试题?

举例:

js基础知识

变量类型、变量计算

变量类型:值类型vs引用类型

var a = 100;
var b = a;
a = 200;
console.log(b);
var a = {age:200};
var b = a;
b.age = 21;
console.log(a.age);

引用类型:对象、数组、函数

typeof undefined;
typeof 'abc'
typeof 123;
typeof true;
typeof {};
typeof [];
typeof null;
typeof console.log;

变量计算 - 强制类型转换

常见面试题

100 == '100';//true
0 == '';//true
null == undefined;//true
var a = true;
if(a){

}

var b = 100;
if(b){

}

var c = '';
if(c){

}
console.log(10 && 0);
console.log('' || 'abc');
console.log(!window.abc);

//判断一个变量会被当作true或false

var a = 100; console.log(!!a);


- 何时使用===何时使用==
```javascript
//问题:何时使用===何时使用==
if(obj.a == null){
    //这里相当于obj.a === null ||  obj.a === undefined,简写形式  
    //这是jquery源码中推荐的写法
}

//值类型 var a = 10; var b = a; a = 11; console.log(b); //10

//引用类型 var obj1 = {x:100}; var obj2 = obj1; obj1.x = 200; console.log(obj2.x);//200

- 如何理解json
```javascript
//JSON只不过是一个js对象而已
JSON.stringify({a:1,b:2});
JSON.parse('{"a":10,"b":2}');

原型和原型链

function Foo(name,age){
    this.name = name;
    this.age = age;
    this.class = 'class-1';
    // return this;默认有这一行
}
var f = new Foo('zhangsan',20);

扩展

原型规则:原型规则是学习原型链的基础

面试题

性能优化

原则

从哪里入手

加载资源优化

渲染优化

}

// 不如 var pList = document.getElementsByTagName('p'); for(var i=0;i<pList.length;i++){

}


- 减少DOM操作,多个操作尽量合并在一起执行 --> 使用document.createDocumentFragment创建DOM碎片
- 事件节流
```javascript
var textarea = document.getElementById('text');
var timeId;
textarea.addEventListener('keyup',function(){
    if(timeId){
        clearTimeout(timeId)'
    }
    timeId = settimeout(function(){}{

    },100)
})

前端安全性(一般问的可能性不是特别大,一般是在面试快结束的时候问)