5.1 语言基础
~~~~~~~~ 数据类型 ~~~~~~~
function sayHi() {
console.log(name);
console.log(age);
var name = 'Lydia';
let age = 21;
}
sayHi()
以上代码的输出是什么?
var name = 'World!';
(function () {
if (typeof name === 'undefined') {
var name = 'Jack';
console.log('Goodbye ' + name);
} else {
console.log('Hello ' + name);
} })();
以上代码的输出是什么?
(function(){
var x = y = 1;
})();
console.log(y);
console.log(x);
以上代码的输出是什么?
var a = 11;
function test2(){
this.a = 22;
let b = ()=>{
console.log(this.a)
}
b();
}
var x = new test2();
以上代码的输出是什么?
for(var i=0;i<5;i++) {
setTimeout(function(){
console.log(i);
},1000);
}
console.log(i)
以上代码的输出是什么?
var a = 111111111111111110000
var b = 1111
console.log(a + b)
以上代码的输出是什么?
[,,,].join(",")
以上代码的运行结果是什么?
function sidEffecting(ary) {
ary[0] = ary[2]
}
function bar(a,b,c) {
c = 10
sidEffecting(arguments)
return a + b + c
}
console.log(bar(1,1,1))
以上代码的输出是什么?
~~~~~~~~ 类型转换 ~~~~~~~
var a = [0];
if ([0]) {
console.log(a == true);
} else {
console.log("hi");
}
以上代码的输出是什么?
console.log(+true);
console.log(!'hi');
以上代码的输出是什么?
var a = [1, 2, 3]
var b = [1, 2, 3]
var c = [1, 2, 4]
console.log(a == b)
console.log(a === b)
console.log(a > c)
console.log(a < c)
以上代码的输出是什么?
~~~~~~~~~ 运算符 ~~~~~~~
var val = 'hi'
console.log('Value is ' + (val === 'hi') ? 'Something' : 'Nothing')
以上代码的输出是什么?
const person = {
firstName: 'Lydia',
lastname: 'Hallie',
pet: {
name: 'Mara',
breed: 'Dutch Tulip Hound'
},
getFullName() {
return `${this.firstName}/${this.lastName}`
}
}
console.log(person.pet?.name)
console.log(person.pet?.family?.name)
console.log(person.getFullName?.())
console.log(person.getLastName?.())
以上代码的输出是什么?
~~~~~~~~~ 语句 ~~~~~~~~
function foo(){
alert(1)
}()
let obj = {
name: "Lydia",
age: 21
}
for (let item in obj) {
console.log(item)
}
以上代码的输出是什么?
const myLife = ['吃', '喝', '玩', '乐'];
for (let item in myLife) {
console.log(item);
}
for (let item of myLife) {
console.log(item);
}
以上代码的输出是什么?
~~~~~~~~~ 方法 ~~~~~~~~
const arr = [1, 2, [3, 4, [5]]];
console.log(arr.flat(1));
以上代码的输出是什么?
var ary = Array(3);
ary[0] = 2
ary.map(function(elem) { return '1'; });
以上代码的运行结果是什么?
[1, 2, 3, 4].reduce((x, y) => console.log(`x=${x} y=${y}`))
以上代码的输出是什么?
const name = 'Lydia Hallie';
const age = 21;
console.log(Number.isNaN(name));
console.log(Number.isNaN(age));
console.log(isNaN(name));
console.log(isNaN(age));
以上代码的输出是什么?
~~~~~~~~ 原型和类 ~~~~~~~~
原型链的顶端是什么?
Object 的原型是什么?
Object 的原型的原型是什么?
在数组的原型链上,实现删除数组重复数据的方法
Function.prototype.a = 1;
Object.prototype.b = 2;
function A() {}
var a = new A();
console.log(a.a, a.b);
console.log(A.a, A.b);
以上代码的输出是什么?
Hero("37er")
执行结果为Hi! This is 37er
Hero("37er").kill(1).recover(30)
执行结果为Hi! This is 37er Kill 1 bug Recover 30 bloods
Hero("37er").sleep(10).kill(2)
执行结果为Hi! This is 37er
等待 10s 后Kill 2 bugs
~~~~~~~~~ 运行时 ~~~~~~~~
let obj1 = {
name: 'obj1_name',
print: function(){
return () => console.log(this.name)
}
}
let obj2 = { name: 'obj2_name' }
obj1.print()();
obj1.print().call(obj2);
obj1.print.call(obj2)();
以上代码的输出是什么?
setTimeout(function(){
console.log(1)
}, 0);
new Promise(function(resolve,reject){
console.log(2);
resolve();
}).then(function(){
console.log(3)
}).then(function(){
console.log(4)
});
// Node.js
process.nextTick(function(){
console.log(5)
});
console.log(6);
以上代码的输出是什么?
~~~~~~~~~ 其它 ~~~~~~~~~
JS 的语言特性
C++, Java, JavaScript 这三种语言的区别
Last updated