前言:
现在看官们对“web判断题”大致比较关切,同学们都需要学习一些“web判断题”的相关文章。那么小编同时在网络上搜集了一些有关“web判断题””的相关文章,希望兄弟们能喜欢,姐妹们一起来了解一下吧!WEB面试题系列—ES面试题
Posted on 2019年6月17日 by zzcoder 阅读数:11
1.简述一下js有几种数据类型?
//1.基础数据类型:(简记:nubnss)null,undefined,boolean,number,string,symbol//2.对象(引用,复合)类型Object,Array,Function
2.typeof的返回值有几种?typeof有什么特点?
Typeof:一个不正确,两个不精确,其余都准确。
一个不正确:typeof(null)的结果是object。
两个不精确:typeof []和{} 的结果都是object
typeof 1 // 'number'typeof '1' // 'string'typeof undefined // 'undefined'typeof true // 'boolean'typeof console.log // 'function'typeof Symbol() // 'symbol'typeof b // b 没有声明,但是还会显示 undefinedtypeof [] // 'object'typeof {} // 'object'typeof null // 'object'
3.说一下null与undefined?
undefined:没有赋值(一般不会将一个变量手动赋值为undefined,因为没有意义)
var a;console.log(a)//undefinedconsole.log(b)//undefinedvar b = 1;
null:赋值了, 但是值为null
//一个约定俗称的小规矩,一般赋值为null代表这个变量接下来要存储的类型是对象var a = null
4.说出下列语句的结果
console.log(1 + '1')//'11'console.log('1'- 0)//1console.log(2 * '2')//4console.log([1, 2] + [2, 1])//1,22,1console.log(typeof console.log('1'- 0))// 1 undefined
第一题:写出以下代码段的执行结果
题目来源:腾讯外包前端笔试题
难度系数:★★★
考察点:
(1). 作用域与作用域链
(2). 变量查找
var x = 10function fn() {console.log(x)}function show(f) {var x = 20f();}show(fn) // 10
第二题:写出执行结果
题目来源:百度中级前端笔试题
难度系数:★★★★
考察点:
(1). 引用变量赋值
(2). 内存分析
(3). 函数调用传参
(4). 运算符的优先级
var a = {n: 1}var b = aa.x = a = {n: 2}console.log(a.n, b.n) // 2 1console.log(a.x, b.x) // undefined,{n:2}
第三题:程序执行结果
题目来源:360企业安全前端笔试题
难度系数:★★★★
考察点:
(1). 作用域
(2). 加法运算
(3). 数据类型
(4). js事件循环机制
function print(arr) {var i = arr.length;for (var j=0; j<i; j++ ){>题目来源:今日头条前端笔试题
难度系数:★★★
考察点:
(1). 箭头函数
(2). ES6对象简写方式
var f = x => x;console.log(f(1)); //1var f = x => {x};console.log(f(1)); //undefinedvar f = x => ({x});console.log(f(1));//{x: 1}setTimeout(()=>{console.info(arr[j]+1)//三次NaN},200)}}print([1,2,3])
第四题:程序执行结果
第五题:控制台输出结果
题目来源:未知
难度系数:★
考察点:
(1). Promise对象
(2). js事件循环机制
const promise = new Promise((resolve, reject) => {console.log(1)resolve()console.log(2)})promise.then(() => {console.log(3)})console.log(4)//1//2//4//3
第一题:写出控制台输出结果
var obj = {fn2: function () {console.log(fn2)// 如果想输出fn2属性的值,这么写:console.log(this.fn2) 或者 obj.fn2也行, 但比较死。}}obj.fn2() //报错, fn2 is not defined
第二题:写出控制台输出结果
function fn() {console.log(a)var a = 3}fn() // undefined//解析:函数内部预处理,不去找全局的a,同时变量提升,打印之前a定义了,还未赋值,undefined
第三题:写出控制台输出结果
function fn2() { // 预计处理:console.log(a)a = 3 // 此时的a是全局变量}fn2() // a is not defined
第四题:你所知道的常见拷贝技术?都分别都有什么问题或特点?
1. arr.concat(): 数组浅拷贝2. arr.slice(): 数组浅拷贝3. JSON.parse(JSON.stringify(arr/obj)): 数组或对象深拷贝, 但不能处理函数数据
第五题:请编写一个函数,完成深度复制对象类型的数据
//判断数据类型的方法function getTYpe(target) {return Object.prototype.toString.call(target).slice(8,-1)}function clone(target) {let resultif(getTYpe(target) === 'Object'){result = {}}else if(getTYpe(target) === 'Array'){result = []}else{return target}for (let key in target){let item = target[key]if(getTYpe(item) === 'Object'||'Array'){result[key] = clone(item)}else{result[key] = item}}return result}
标签: #web判断题