1、以下代码的执行结果是什么?
console.log('one');
setTimeout(function(){
console.log('two');
},0);
console.log('three');
// 结果
one
three
two
解析: JS为单线程语言。回调函数被调用时,会被放在event loop里。线程中的任务执行完毕之后,执行event loop里的任务。
2、JS 数据类型
7 种基本数据类型: Boolean(布尔值):有两个值:true、false。 null:一个表明 null 值的特殊关键字(Javascript 对大小写敏感,null 与 Null、NULL 或其他变体完全不同)。 undefined:表示变量未赋值时的属性。 Number(数字):整数或浮点数。 BigInt:任意精度的整数(可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制)。 String(字符串):一串表示文本值的字符序列。 Symbol:一种实例是唯一且不可改变的数据类型。 1 种复杂数据类型:Object(对象)。
3、 HTML 文件开始部分未声明 doctype,浏览器如何解析?
此时浏览器执行怪异模式(兼容模式),即按照自身标准渲染页面。 若声明,此时浏览器执行标准模式,即按照W3C标准渲染页面。
4、void 运算符
void:表明一个运算没有返回值。 具体使用: void (exprssion) / void expression
void (0); // undefined
void 0; // undefined
void (); // SyntaxError 语法错误
5、执行以下程序,输出结果为()
var a = 4 >= 6 || true && 1 || false;
console.log(a);
解析: 本体涉及到的运算符: = :赋值运算符(assignment)。 >= : 比较运算符(relational)。 &&:逻辑与运算符(logical-and)。 ||:逻辑或运算符(logical-or)。 优先级排列为(由高至低):比较运算符 > 逻辑与运算符 > 逻辑或运算符 > 赋值运算符。 所以代码执行顺序为:
4 >= 6 // 结果为:false。(比较操作符返回布尔值)
true && 1 // 结果为:1。(逻辑与运算规则:第一操作数为真值,则返回第二操作数;反之,则返回第一操作数)
false || 1 // 结果为:1。(逻辑或运算规则:第一操作数为真值,则返回第一操作数;反之,则返回第二操作数)
1 || false // 结果为:1。
|