单选题
JS基础
js概念与类型检测
-
以下不属于 typeof 运算符返回值的是?
A. "string"
B. "function"
C. "object"
D. "null"
复制代码
-
执行以下代码,错误的输出结果是
A. 输入:typeof {"x":1} 输出:"object"
B. 输入:typeof 1 输出:"number"
C. 输入:typeof [{x:1}] 输出:"array"
D. 输入:typeof NaN 输出:"number"
复制代码
-
可以用typeof来判断的基本类型有
A. undefined
B. null
C. array
D. object
复制代码
-
以下不属于JavaScript基本数据类型的是:
A. Boolean
B. undefined
C. Symbol
D. Array
复制代码
-
以下关于JavaScript中数据类型的说法错误的是\(\)
A. 数据类型分为基本数据类型和引用数据类型
B. JavaScript一共有8种数据类型
C. Object是引用数据类型,且只存储于堆(heap)中
D. BigInt是可以表示任意精度整数的基本数据类型,存储于栈(stack)中
复制代码
答案
DCADC
复制代码
逻辑判断
-
请选择结果为ture的表达式?
A. null instanceof Object
B. null === undefined
C. null == undefined
D. NaN == NaN
复制代码
-
下列代码结果为 true 的是?
A. Symbol.for('a') === Symbol.for('a')
B. Symbol('a') === Symbol('a')
C. NaN === NaN
D. {} === {}
复制代码
-
根据如下变量,下列表达式中返回值为true的是
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
复制代码
-
1==true的返回值是true,这句话是否正确?
A. T
B. F
复制代码
-
下面代码输出为true的是\?
A. console.log([] === []);
B. console.log(undefined == 0);
C. console.log(undefined == false);
D. console.log(false == '');
复制代码
-
浏览器环境下,以下打印结果为true的是
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])
复制代码
注意浏览器环境与node环境的差别,比如C选项
-
以下表达式,正确的是
A. Number('a') == Number('a')
B. -1 == true
C. 3 + '2' === 5
D. ![] == ''
复制代码
答案
CADADCD
复制代码
Math
-
如何把 7.25 四舍五入为最接近的整数
A. Math.round(7.25)
B. Math.ceil(7.25)
C. round(7.25)
D. Math.rnd(7.25)
复制代码
-
下面哪个选项可以产生0\<=num\<=10的随机整数
A. Math.floor(Math.random()*6)
B. Math.floor(Math.random()*10)
C. Math.floor(Math.random()*11)
D. Math.ceil(Math.random()*10)
复制代码
-
以下\( \)表达式产生一个0\~7之间\(含0,7\)的随机整数
A. Math.floor(Math.random()*6)
B. Math.floor(Math.random()*7)
C. Math. floor(Math.random()*8)
复制代码
答案
A CD(注意D) C
复制代码
字符串
-
split\(\) 方法用于把一个字符串分割成字符串数组。
A. T
B. F
复制代码
-
String对象的哪个方法可以寻找子字符串并返回该子字符串位置
A. match()
B. indexOf()
C. search()
D. concat()
复制代码
答案
A BC
复制代码
JSON
-
下面哪一个是JSON数据?
A. {name:"xiaoming",age,"student"}
B. {"name":"xiaoming","age":"student"}
C. {"xiaoming","student"}
D. ["xiaoming","student"]
复制代码
-
下面分别使用 JSON.stringify 方法,返回值 res 分别是
const fn = function(){}
const res = JSON.stringify(fn)
const num = 123
const res = JSON.stringify(num)
const res = JSON.stringify(NaN)
const b = true
const res = JSON.stringify(b)
复制代码
A. 'function'、'123'、'NaN'、'true'
B. undefined、'123'、undefined、'true'
C. undefined、'123'、'null'、'true'
D. undefined、'123'、'null'、undefined
复制代码
答案
BC
复制代码
数组
-
js数组中不会改变原有数组的方法是\(\)
A. push
B. concat
C. sort
D. shift
复制代码
-
下列哪种数组的方法不会修改数组本身
A. slice
B. splice
C. sort
D. unshift
复制代码
-
JavaScript中需要往数组末尾处添加一个元素,应该使用以下哪个方法:
A. push
B. pop
C. shift
D. unshift
复制代码
-
以下js操作Array的方法中不能添加元素的是:
A. push
B. pop
C. unshift
D. splice
复制代码
-
数组以下哪个方法会影响原数组?
A. concat
B. splice
C. slice
D. join
复制代码
-
JavaScript中,下列哪一个Array的方法的返回值类型和其他不同
A. concat
B. shift
C. filter
D. map
复制代码
-
如下的Array.prototype上的方法中,那个方法不会改变原有的数组?
A. push
B. slice
C. splice
D. sort
复制代码
-
对于一个数字组成的数组 nums,现在需要执行在不改动 nums 的基础上去重操作,返回一个新的无重复元素的数组,以下几段代码能完成这一操作的是\(\)
// (1)
const newNums = Array.from(new Set(nums))
复制代码
// (2)
const newNums = nums.filter((n, i) => {
return nums.indexOf(n) === i
})
复制代码
// (3)
const newNums = nums.forEach((n, i) => {
return nums.indexOf(n) === i
})
复制代码
// (4)
const newNums = nums.reduce((acc, n, i) => {
return [].concat(acc, nums.indexOf(n) === i ? n : []
)
})
复制代码
A. (1)、(2)、(3)、(4)
B. (1)、(3)、(4)
C. (1)、(2)、(4)
D. (1)、(4)
复制代码
答案
BAABB
BBC
复制代码
正则
-
正则表达式 \^d+\[\^d\]+ 能匹配下列哪个字符串?
A. 123
B. 123a
C. d123
D. 123def
复制代码
-
下面哪个不是RegExp对象的方法
A. test
B. match
C. exec
D. compile
复制代码
-
以下哪项可以去除变量str中的所有空格
A. str.replace(`/\s*/g,""`)
B. str.replace(`/^\s|\s$/g,""`)
C. str.replace(`/^\s*/, ""`)
D. str.replace(`/(\s*$)/g, ""`)
复制代码
答案
CBA
复制代码
其他
-
下列函数哪个不是JavaScript的全局函数
A. encodeURI
B. parseFloat
C. round
D. eval
复制代码
-
编写高性能JavaScript,以下描述错误的是
A. 遵循严格模式:"use strict"
B. 将js脚本放在页面顶部,加快渲染页面
C. 将js脚本成组打包,减少请求,尽量减少使用闭包
D. 使用非阻塞方式下载js脚本,最小化重绘(repaint)和回流(reflow)
复制代码
-
有关JavaScript中系统方法的描述,错误的是?
A. parseFloat方法:该方法将一个字符串转换成对应的小数
B. isNaN方法:该方法用于检测参数是否为数值型,如果是,返回true,否则,返回false。
C. escape方法: 该方法返回对一个字符串编码后的结果字符串
D. eval方法:该方法将某个参数字符串作为一个JavaScript执行题
复制代码
-
下面列出的浏览器,无webkit内核的是\(\)
A. chrome
B. Safari
C. 搜狗浏览器
D. Firefox
复制代码
-
下列代码哪个能够实现获取形式为 2017-08-01 形式的日期\( \)?
// A
var formatDate=getDate()
// B
var formatDate = new Date()
// C
var formatDate = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
return y + '-' + m + '-' + d;
};
// D
var formatDate = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
};
复制代码
-
下面哪一项不能最小化重绘\(repaint\)和回流\(reflow\)
A. 需要对元素进行复杂的操作时,可以先隐藏(display:"none"),操作完成后再显示
B. 需要创建多个DOM节点时,使用DocumentFragment创建完后一次性的加入document
C. 尽量避免用table布局(table元素一旦触发回流就会导致table里所有的其它元素回流)
D. 尽量不要使用 css 属性简写,如:用border-width, border-style, border-color代替border
复制代码
答案
CBBDDD
复制代码
JS深入
this
-
下列哪种方法不能改变this指向\(\)
A. eval
B. apply
C. bind
D. call
复制代码
-
在JavaScript中下面选项关于this描述正确的是
A. 在使用new实例化对象时, this指向这个实例对象
B. 将对象的方法赋值给变量A。执行A()时 该方法中的this指向这个对象。
C. 在函数定义时,this指向全局变量
D. 在浏览器下的全局范围内,this指向全局对象
复制代码