27
2020
07

下面两个函数的返回值是一样的吗?为什么?

function foo1(){  return {      bar: "hello"  };}function foo2(){  return  {      bar: "hello"  };}在编程语言中,基本都是使用分号(;)将语句分隔开,这可以增加代码的可读性和整洁性。而在JS中,如若语句各占独立一行,通常可以省略语句间的分号(;),JS
27
2020
07

在严格模式('use strict')下进行 JavaScript 开发有神马好处?

消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;消除代码运行的一些不安全之处,保证代码运行的安全;提高编译器效率,增加运行速度;为未来新版本的Javascript做好铺垫。
27
2020
07

将 JavaScript 代码包含在一个函数块中有神马意思呢?为什么要这么做?

换句话说,为什么要用立即执行函数表达式(Immediately-Invoked Function Expression)。IIFE 有两个比较经典的使用场景,一是类似于在循环中定时输出数据项,二是类似于 JQuery/Node 的插件和模块开发。for(var i = 0; i < 5; i++) {    setTimeout(function() {        console.log(i);    &n
27
2020
07

下面的代码会在 console 输出神马?为什么?

var myObject = {    foo: "bar",    func: function() {        var self = this;        console.log("outer func:  this.foo = " + this.foo);        c
27
2020
07

下面的代码会在 console 输出神马?为什么?

(function(){  var a = b = 3;})();console.log("a defined? " + (typeof a !== 'undefined'));   console.log("b defined? " + (typeof b !== 'undefined'));这跟变量作用域有关,输出换成下面的:console.log(b); //3console,log(ty
27
2020
07

使用 typeof bar === "object" 判断 bar 是不是一个对象有神马潜在的弊端?如何避免这种弊端?

使用 typeof 的弊端是显而易见的(这种弊端同使用 instanceof):let obj = {};let arr = [];console.log(typeof obj === 'object');  //trueconsole.log(typeof arr === 'object');  //trueconsole.log(typeof null === 'object');  //true从上面的输出结果可
22
2020
05

什么是事件冒泡?

当事件发生在DOM元素上时,该事件并不完全发生在那个元素上。在冒泡阶段,事件冒泡,或者事件发生在它的父代,祖父母,祖父母的父代,直到到达window为止。假设有如下的 HTML 结构:<div class="grandparent">  <div class="parent">    <div class="child">1</div>  </
22
2020
05

什么是事件传播?

当事件发生在DOM元素上时,该事件并不完全发生在那个元素上。在“冒泡阶段”中,事件冒泡或向上传播至父级,祖父母,祖父母或父级,直到到达window为止;而在“捕获阶段”中,事件从window开始向下触发元素 事件或event.target。事件传播有三个阶段:捕获阶段–事件从 window 开始,然后向下到每个元素,直到到达目标元素。目标阶段–事件已达到目标元素。冒泡阶段–事件从目标元素冒泡,然后上升到每个元素,直到到达 window。
22
2020
05

DOM 是什么?

DOM 代表文档对象模型,是 HTML 和 XML 文档的接口(API)。当浏览器第一次读取(解析)HTML文档时,它会创建一个大对象,一个基于 HTM L文档的非常大的对象,这就是DOM。它是一个从 HTML 文档中建模的树状结构。DOM 用于交互和修改DOM结构或特定元素或节点。假设我们有这样的 HTML 结构:<!DOCTYPE html><html lang="en"><head>   <meta char
22
2020
05

使用 + 或一元加运算符是将字符串转换为数字的最快方法吗?

根据MDN文档,+是将字符串转换为数字的最快方法,因为如果值已经是数字,它不会执行任何操作。