秋招前端笔试选择题速刷(手敲带解析)

218 阅读3分钟

js概念与类型检测

  1. 以下不属于 typeof 运算符返回值的是? D
A. "string"
B. "function"
C. "object"
D. "null"
typeof不能判断null,会将其判断为object,因此选D
  1. 执行以下代码,错误的输出结果是 C
A. 输入:typeof {"x":1} 输出:"object" 
B. 输入:typeof 1 输出:"number" 
C. 输入:typeof [{x:1}] 输出:"array" 
D. 输入:typeof NaN 输出:"number"
数组是对象的一种特殊形式,typeOf判断数组时,会判断为object,故选C
  1. 可以用typeof来判断的基本类型有 A
A. undefined
B. null
C. array
D. object
已知typeOf判断数组,对象,null时都是object,因此选A
  1. 以下不属于JavaScript基本数据类型的是: D
A. Boolean
B. undefined
C. Symbol
D. Array
Array数组是引用数据类型,选D
  1. 以下关于JavaScript中数据类型的说法错误的是 C
A. 数据类型分为基本数据类型和引用数据类型 
B. JavaScript一共有8种数据类型
C. Object是引用数据类型,且只存储于堆(heap)中
D. BigInt是可以表示任意精度整数的基本数据类型,存储于栈(stack)中

引用数据类型同时存放在堆与栈里面的,堆中存储对象,栈里面存储该对象的地址

逻辑判断

  1. 请选择结果为ture的表达式? C
A. null instanceof Object
B. null === undefined
C. null == undefined
D. NaN == NaN
解释
A.false
B.false
C.true
D.false
  1. 下列代码结果为 true 的是? A
A. Symbol.for('a') === Symbol.for('a')
B. Symbol('a') === Symbol('a')
C. NaN === NaN
D. {} === {}
A.Symbol.for(key)是在全局查找是否有symbol类型的key
B.因为Symbol是唯一的,故不等于
C.NaN与任何值都不相等,包括自身,故不等于
D.两个对象的地址不同,故不相等
  1. 根据如下变量,下列表达式中返回值为true的是 D
var a = 1;
var b = [];
var c = '';
var d = true;

A. (a || b) === true
B. (b && c) === true
C. (c && d) === true
D. (d || a) === true

A.返回false
B.返回false
C.返回false
D.返回true
知识点就是 
|| 如果第一个操作数为真,则直接返回第一个操作数,不再进行后续判断;如果第一个操作数为假,则返回第二个操作数
&& 如果第一个操作数为真,则返回第二个操作数;如果第一个操作数为假,则直接返回第一个操作数,不再进行后续判断
  1. 1==true的返回值是true,这句话是否正确? A
A. 正确
B. 错误
正确,但是当===时,就返回false
因为==会进行类型转换,会将boolean转化为number ,因此true1false0
举一反三  2==true  返回false
  1. 下面代码输出为true的是? D
A. console.log([] === []);
B. console.log(undefined == 0);
C. console.log(undefined == false);
D. console.log(false == '');

A.返回false,因为地址不同
B. console.log(undefined == 0);
C. 类型不同,undefined和boolean
D. ''在类型转化时,会被转换为false
  1. 浏览器环境下,以下打印结果为true的是 C
A. console.log("12" === 12)
B. console.log (NaN === NaN)
C. console.log (typeof(null) === typeof(window))
D. console.log ([1,2,3] === [1,2,3])

A. 字符串和number
B. NaN与任何值都不相等,包括自身,故不等于
C. window是一个对象,而typeofNull)返回object,因此返回true
D. 数组的地址不同
  1. 以下表达式,正确的是 D
A. Number('a') == Number('a')
B. -1 == true
C. 3 + '2' === 5
D. ![] == ''

A. Number('a')返回NaN,因此不相等
B. numberboolean,因此为false
C. 字符串拼接32,不等于5
D. ![] == ''和[] == '',返回的都是true,因为两者进行类型转换后,都为false