应届前端面试——看这篇就够了(一)
2018-07-19 17:50
218 查看
1、基础知识
1.变量类型和计算
题目:
- js中使用typeof能得到的类型有哪些
- 何时使用===何时使用==
- js中有哪些内置函数
- js变量按照存储方式分为哪些类型,并描述其特点
- 如何理解json
知识点:
1.变量类型:值类型与引用类型
值类型:
var a=100;
var b=a;
a=200;
console.log(b);//100
引用类型:对象、数组、函数
var a={age:20};
var b=a;
b.age=21;
conlose.log(a.age)//21
typeof运算符:只能区分值类型的详细类型
typeof undefined //undefined
typeof 'abc' //string
typeof 123 //number
typeof true //boolean
typeof {} //object
typeof [] //object
typeof null //object
typeof console.log //function
2.变量计算
强制类型转换:
- 字符串拼接
var a=100+10; //110
var b=100+'10'; //'10010'
- ==运算符 (0、‘’、null、undefined都会转换成false)
null==undefined; //true
100=='100'; //true
0=''; //true
- if语句 (0、‘’、null、undefined都会转换成false)
var a=true
if(a){...}
var b=100
if(b){...}
var c=''
if(c){...}
- 逻辑运算
console.log(10&&0) ; //0
console.log(''||'abc') ; //'abc'
console.log(!window.abc); //true
var a=100;
console.log(!!a); //true
解答:
- undefined/string/number/boolean/object/function
- 参考jquery源码:
if(obj.a==null){
//相当于obj.a===null || obj.a===undefined 简写
}除此外,其他都用===
- 内置函数(数据封装类对象):Object Array Boolean Number String Function Date RegExp Error
- 值类型和引用类型
- json 只不过是一个 JS 对象而已,也是一种数据格式 [ol]
- JSON.stringify({a:10,b:20}) 将对象转换为字符串
- JSON.parse('{"a":10,"b":20}') 将字符串变为对象
- 如何准确判断一个变量是数组类型
- 写一个原型链继承的例子
- 描述new一个对象的过程
- zepto(或其他框架)源码中如何使用原型链
- 构造函数(函数名首字母大写)
function Foo(name,age){
this.name=name;
this.age=age;
this.class='class-1';
// return this //默认有这一行
}
var f=new Foo('zhangsan',20);
var f1=new Foo('lisi',23);
- 构造函数-扩展
- 原型规则和示例
- 所有的引用类型(数组对象函数),都具有对象特性,即可自由扩展属性(除’null‘以外);
- 所有的引用类型,都有一个_proto_属性,属性值是一个普通的对象;
- 所有函数,都有一个prototype属性,属性值是一个普通的对象;
- 所有引用类型,_proto_属性值指向(完全等===)他的构造函数的prototype属性值;
- 当试图得到一个对象的某个属性时,若果这个对象本身没有这个属性,那么它的_proto_(即它的构造函数的prototype)中寻找。
- 原型链
- instanceof
- 说一下变量提升的理解
- 说明this几种不同的使用场景
- 创建10个<a>标签,点击的时候弹出来对应的序号
- 如何理解作用域
- 实际开发中闭包的应用
- 执行上下文(声明提升)
var a=100;
fn('zhangsan'); //'zhangsan',20
function fn(name){
age=20;
console.log(name,age);
var age;
}
范围:一段<script>或者一个函数
全局:变量定义、函数声明、一段<script>
函数:变量定义、函数声明、this、arguments、函数
注意:函数声明和函数表达式的区别
- this
- 作用域
- 作用域链
- 闭包
- 同步和异步的区别是什么?分别举例
- 一个关于setTimeout的笔试题
- 前端使用异步的场景有哪些
console.log(100)
setTimeout(function(){
console.log(200)
},1000)
console.log(300)
输出:100 300 200同步:有阻塞
console.log(100)
alert(200) //几秒后点击确认
console.log(300)前端使用异步的场景 在可能发生等待的情况,等待过程中不能像alert一样阻塞程序运行,因此,所有的等待的情况都需要异步。
- 定时任务setTimeout setInverval
- 网络请求:ajax请求,动态<img>加载
- 事件绑定
- 获取2017-06-10格式的日期
- 获取随机数,要求是长度一致的字符串格式
- 写一个能遍历对象和数组的通用forEach函数
相关文章推荐
- 前端技术面试准备+前端知识点总结(看这篇就够了)
- 前端面试考点多?看这些就够了(可有-成都/重庆的坑位)
- 前端面试考点多?看这几篇文章就够了
- 前端面试系列之---异步 单线程
- 【前端面试】我遇到的那些前端笔试题~
- 关于前端学习和笔试面试的总结
- Web前端面试题目汇总
- 前端面试笔记
- 2014年前端面试经历
- 翻译 前端面试题目
- 前端sublime-text3 这些就够了
- 这道题面试前端,没人答出来!
- 前端开发面试总结系列一
- 最容易忽略的的前端面试基础题目
- 前端面试中的最常见的算法问题
- 前端开发面试总结JavaScript部分
- 【转载】 前端面试
- (转) 前端面试之js相关问题(一)
- 前端面试试题
- 前端面试学习(五)