- JavaScript的变量名在定义时需要遵守哪些规则?
- 不能被encodeURIComponent()函数编码的字符有哪些?
- 如何获得Select元素(选择框)中选中项的索引?
- JavaScript的内置对象有哪些。
- 如何为一个<p>元素添加CSS类primary?
- 与鼠标相关的事件有哪些?
- 如何通过jQuery的方式获得代码中单选框的选中值。
- 执行下面的代码,在控制台输出的x为__________,y为__________。
var x = 0, y = 0;
x
++
y
console.log(x, y);
function isArray() {
return
true;
}
isArray();
var y,
x = 1;
y = x+++x;
- 2+true等于__________,'6'+9等于__________。
- 4+3+2+"1"等于__________,"1"+2+4等于__________。
- (1, 5 - 1) * 2 等于__________。
- 执行下面的代码后,在控制台输出的y为__________。
var x = "1", y;
switch (x) {
case 1:
y = 1;
break;
case 2:
y = 2;
break;
default:
y = 0;
}
console.log(y);
- !function(){}的返回值是__________。
- 7 - "a"等于__________,7 / 0等于__________。
- 3..toFixed(2)得到的结果为__________。
- parseFloat('12.3.4')返回的结果为__________。
- Number(012)返回的结果为__________,Number("0xA")返回的结果为__________。
- 在下面的代码中,Number()函数的参数是一个对象,最终的结果为__________。
var numberObj = {
valueOf: function() {
return {};
},
toString: function() {
return "10";
}
};
Number(numberObj);
var a = {},
b = { name: "ping" },
c = { name: "wen" };
a[b] = 10;
a[c] = 20;
console.log(a[b]);
- [] == ![]得到的结果为__________。
- [] + {}得到的结果为__________,{} + []得到的结果为__________。
- Array.prototype.isPrototypeOf([1, 2])的结果为__________。
- 下面代码最终的打印结果是__________。
var obj1 = {
names: []
};
var obj2 = obj1.names;
obj2.push("strick");
console.log(obj1.names);
var str = "pw1",
pattern1 = /\d/,
pattern2 = /\d/g;
pattern1.test(str);
pattern2.test(str);
pattern2.test(str);
var arr1 = "ping".split(""),
arr2 = arr1.reverse(),
arr3 = "pw".split("");
arr2.push(arr3);
var arr = [4, 1, 5, 2, 3];
arr.sort(function(a, b) {
return a > b;
});
- [1, 2, 3, 4, 5].splice(-2)的值为__________。
- [1, 2, 3, 4, 5].slice(NaN, 1)的值为__________。
- 下面代码执行后,在控制台会输出b变量,得到的结果是__________。
(function() {
var a = b = 5;
})();
console.log(b);
- 1 instanceof Number的返回值是__________,2 in [1,2]的返回值是__________。
- typeof undefined的返回值是__________,typeof null的返回值是__________。
- 将Object的toString()方法分别应用于null和undefined(如下所示),得到的结果为__________和__________。
var toString = Object.prototype.toString;
toString.call(null);
toString.call(undefined);
console.log(1);
setTimeout(function() {
console.log(2);
}, 0);
console.log(3);
- 请简单描述一下你对JavaScript的理解。
- JavaScript有哪些优势和劣势?
- 相等(==)和全等(===)运算符有哪些区别?
- 在JavaScript中,字面量是指什么?
- 分号会在什么时候自动补全?自动补全有什么弊端?
- 什么是严格模式?严格模式有哪些限制?
- undefined和null的有哪些异同?
- 请说明JavaScript中的原生对象(native objects)和宿主对象(host objects)。
- 全局函数eval()有什么作用?
- 请简单描述一下你所理解的原型链。
- 用new运算符创建对象时,例如new Fn(),具体的创建过程有哪几步?
- JSON格式的数据与XML格式的数据相比,有哪些优势?
- 函数声明和函数表达式有哪些区别?
- Function构造器有哪些功能?
- 执行下面的代码,为何输出的都是3?
for (var i = 0; i < 3; i++) {
setTimeout(function() {
console.log(i);
}, 0);
}
- 请谈谈你对闭包的理解。
- 什么是事件循环?
- 如果一个全局变量没有事先声明,那么在控制台能否输出它的值?
- 如何用脚本获取当前显示器的分辨率?
- document.write()和innerHTML有哪些区别?
- 请介绍一下DocumentFragment类型的节点。
- HTML元素的特性和属性是怎么定义的?
- jQuery有哪些特色?
- 在jQuery中有哪些方法可以删除元素。
- jQuery UI是什么?
- 请用JavaScript实现冒泡排序。
- 请实现一个遍历至100的循环,在能被3整除时输出“three”,在能被5整除时输出 “five”,在能同时被3和5整除时输出“all”。
- 封装一个isInteger()函数,用于检测传入的值是整数。
- 请重新封装一个isNaN2()函数,此函数弥补了全局函数isNaN()的不足。
- 编写一个函数,能让两个并不大的小数正确相乘。
- 统计字符串“xxxxyyydda”中每个字母出现的次数。
- 执行a == 1 && a == 2 && a == 3,返回的结果是true,那么a的值是什么?
- 如何判断对象中的某个属性是继承而来的?
- 如何用JavaScript实现对象继承?
- 怎么实现深拷贝?
- 在网页中实现一个倒计时,能够动态显示“××天××时××分××秒” 。
- 请用多种方式获取当前时间的毫秒数。
- 如何判断某一年是闰年?
- 如何计算两个日期相隔的天数?
- 请编写一个格式化字符串的函数,例如传入“我的名字叫{0}”和“strick”,返回“我的名字叫strick”。
- 用JavaScript封装一个函数,可实现整数的千分位逗号分隔符(不用考虑小数),例如12345用12,345表示。
- 编写一个函数,用于清除字符串前后的空格。
- 如何将字符串“get-element-by-id”转化成驼峰表示法的“getElementById”?
- 用数组方法把数组中的元素(假设元素值都是数字)加起来,得到的和赋给result变量。
- 不用循环语句(for、while等)创建一个长度为50的数组,每个元素的值等于它的索引。
- 设计一个函数能够补全整数的前置零,例如为3补全两个前置零,得到的结果为“003”。
- 有一个数组,其值为[1,[2,[3,4,2],2],5,[6]],如何才能输出[1,2,3,4,2,2,5,6]?
- 请封装一个函数,用于判断某个数是否是质数。
- 请封装一个函数,可序列化URL中的查询字符串,也就是把字符串转换为一个包含所有参数的对象。
- 设计一个函数,用于判断一个HTML元素是另一个HTML元素的后代。
- 创建一个<dd>元素,设置该元素的内容为4,并插入到id属性为“third”的<dd>元素之前。要求用DOM方法实现。
- 如何动态的添加外部脚本?
- 用多种方式为一个<div>元素设置一个名为ui-border的CSS类。
- 请封装一个函数,模拟getBoundingClientRect()方法,但只要返回元素到视口顶部(top)和左边(left)的距离。
- 如何禁用HTML文档中的提交按钮?
- 用JavaScript为HTML元素设置两个CSS属性:字体大小和宽度,把字体大小设为18px,宽度设为100px,请用多种方式实现。
- 有一个div元素,其宽度设为了百分数,如何用JavaScript获得经过计算后的真正宽度?
- 如何用JavaScript隐藏一个按钮?
- 假设有一个按钮,如何在点击类型的事件处理程序中阻止事件传播。
- 请封装一个注册事件的函数,要求能够跨浏览器运行。
- 什么是事件委托?请用一个例子来描述委托?
- 不使用第三方类库,用DOM方法读取复选框中选中的值。
- 用多种方式移除选择框(Select元素)中的选项(Option元素)。
- 如何用<iframe>元素实现无刷新文件上传。
- HTML5新增了FileReader对象,如何利用这个对象来读取上传按钮中选择的文件?
- 不借助第三方类库,请实现一次简单的Ajax请求。
- 请解释JSONP的工作原理,并用代码描述其过程。
- 如何用jQuery来创建插件?
- 两次输出各是什么?
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1)
}
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1)
}
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
const lydia = new Person("Lydia", "Hallie");
const sarah = Person("Sarah", "Smith");
console.log(lydia);
console.log(sarah);
function bark() {
console.log("Woof!");
}
bark.animal = "dog";
let number = 0;
console.log(number++);
console.log(++number);
console.log(number);
function checkAge(data) {
if (data === { age: 18 }) {
console.log("You are an adult!");
} else if (data == { age: 18 }) {
console.log("You are still an adult.");
} else {
console.log(`Hmm.. You don't have an age I guess`);
}
}
checkAge({ age: 18 });
function getAge() {
"use strict";
age = 21;
console.log(age);
}
getAge();
sessionStorage.setItem("cool_secret", 123);
<div onclick="console.log('first div')">
<div onclick="console.log('second div')">
<button onclick="console.log('button')">
Click!
</button>
</div>
</div>
<div onclick="console.log('div')">
<p onclick="console.log('p')">
Click here!
</p>
</div>
0;
new Number(0);
("");
(" ");
new Boolean(false);
undefined;
- 前端的requestAnimationFrame了解吗?有使用过吗?请说一下使用场景。
- 对前后端跨域可以说一下吗?有碰到过跨域问题吗?如何解决跨域的?
- 闭包为什么会造成内存泄漏?
- 请讲一下JavaScript的垃圾回收机制。
- 求一个对象的层级数,用递归和循环分别实现。
- 实现下面这道题中的machine函数。
function machine() {
}
machine('ygy').execute()
// start ygy
machine('ygy').do('eat').execute();
// start ygy
// ygy eat
machine('ygy').wait(5).do('eat').execute();
// start ygy
// wait 5s(这里等待了5s)
// ygy eat
machine('ygy').waitFirst(5).do('eat').execute();
// wait 5s
// start ygy
// ygy eat
- lodash和ramda的区别是什么?
- 字符串和new String出来的字符串有啥区别?
- JS如何判断网页中图片加载成功或者失败?
- 递归和迭代的区别是什么,各有什么优缺点?
- 实现一个类型判断函数,需要鉴别出基本类型、function、null、NaN、数组、对象?
- 什么是节流和抖动?
- 深拷贝和浅拷贝有什么区别?
- 如何实现对一个DOM元素的深拷贝,包括元素的绑定事件?
- 用代码模拟出apply()、call()和bind()三个函数。
- 用代码模拟instanceof运算符。
- 实现一个简单的路由。
- 封装鼠标拖拽的功能。
- 如何让两个非常大的数字相加?
- 宏任务和微任务是指什么?
- 实现预加载和懒加载。
- 如何用Ajax实现大文件上传?
- 如何用JavaScript实现两个大数的相加?
- ES6的模块和CommonJS模块的对比
- 模拟Object.create()方法。
- 实现JSON.parse()方法。
- setTimeout背后的原理是怎么样的?
- 如果实现前端截图?
- setTimeOut 和 setInterval 底层有哪些区别?
- 在CORS跨域请求时,什么情况下会发两次请求?
- 在CORS跨域请求时,需要携带cookie,得做哪些配置?
- 如何实现并发请求?