-
AMD和CMD都是浏览器端的js模块化规范,分别由require.js和sea.js实现。 CommonJS是服务器端的js模块化规范,由NodeJS实现。
-
(()=>{}).length; 获取方法形参个数,形参为0
-
+[] 隐式类型转换,因为[]是对象,所以toPrimitive->valueOf->toString为”,结果就是+”===0
-
阻止默认事件:
e.preventDefault()
e.returnValue = false (IE)
阻止冒泡:
e.stopPropagation()
e.cancelBubble = true (IE)
-
虽然在绝大多数编程语言中,0是不能作为分母,但在js中,0是可以作分母的,0/0的结果为NaN,并不会抛出异常,因此会执行try块中所有代码
-
readystatechange 读取状态变化
pageshow 页面展示
beforeunload 页面退出
DOMContentLoaded dom内容加载完成
-
模块查找顺序:
(1):首先,Node在当前目录下查找package.json(CommonJS包规范定义的包描述文件),通过JSON.parse()解析出包描述对象,从中取出main属性指定的文件名进行定位。如果文件缺少扩展名,将会进入扩展名分析的步骤。
(2):而如果main属性制定的文件名错误,或者压根没有package.json文件,Node会将index当做默认文件名,然后依次查找index.js、index.node、index.json.
(3):如果在目录分析的过程中没有定位成功任何文件,则自定义模块进入下一个模块路径进行查找。如果模块路径数组都被遍历完毕,依然没有查找到目标文件,则会抛出查找失败异常。
按照上面的思路,首先应该查找package.json文件,看看里面有没有核心模块,应该是C最先,othermodule不是核心模块,那么接着应该进入扩展名分析的步骤,就应该是查找othermodule. js,对应B,紧接着就是以index为默认文件名,也就是A,再接下来就是上一个文件目录D了,
-
JavaScript的全局函数:
decodeURI() 解码某个编码的 URI。
decodeURIComponent() 解码一个编码的 URI 组件。
encodeURI() 把字符串编码为 URI。
encodeURIComponent() 把字符串编码为 URI 组件。
escape() 对字符串进行编码。
eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。
isFinite() 检查某个值是否为有穷大的数。
isNaN() 检查某个值是否是数字。
Number() 把对象的值转换为数字。
parseFloat() 解析一个字符串并返回一个浮点数。
parseInt() 解析一个字符串并返回一个整数。
String() 把对象的值转换为字符串。
unescape() 对由 escape() 编码的字符串进行解码
setTimeout 是 DOM 提供的函数
-
document对象方法
-
window对象方法
-
parseInt() 函数可解析一个字符串,并返回一个整数。所以说,number类型的12.34发生隐式转换为string。
-
关于立即执行函数:
(function add(){ add = 100;//此行代码作废,无效,因为此行代码的意思是要修改函数名,此处是立即执行函数,不允许被修改! console.log(add); })();(function (){ a = 100;// 此时的a成为全局变量,挂在到window上! console.log(a); })(); console.log(a);//100var add = 1; function add(){ add = 2; console.log(add);//2 } add();//var a = 1; function add(a=2){ console.log(a);//2 这地方的a在预解析变量声明提升处理完成后,最后一步会把同名的参数a的值2,赋值给变量a var a = 3; console.log(a);//3 } add(); console.log(a)//1 -
ES6中的类可以视为ES5中构造函数的另一种写法,所以
typeofPhone的输出结果为function而不是Object -
下面哪些方法可以用于JavaScript 异步模式的编程?
回调函数,这是异步编程最基本的方法。 事件监听,另一种思路是采用事件驱动模式。任务的执行不取决于代码的顺序,而取决于某个事件是否发生。 发布/订阅,上一节的”事件”,完全可以理解成”信号”。 Promises对象,Promises 对象是CommonJS 工作组提出的一种规范,目的是为异步编程提供统一接口。
-
ES5:
orEach(), filter(), reduce(), every() 和some()都会跳过空位。
map()会跳过空位,但会保留这个值
join()和toString()会将空位视为undefined,而undefined和null会被处理成空字符串。
ES6 中都会将空位当做undefined
-
类型隐式转换:
参照左侧转换为右侧
-
Referer是request Header里的内容,不是response header里的内容
-
preventDefault() 取消事件默认行为,如阻止点击提交按钮时对表单的提交(本题中click并没有什么默认行为) stopImmediatePropagation() 取消事件冒泡同时阻止当前节点上的事件处理程序被调用,影响当前的事件
stopPropagation() 取消事件冒泡,不影响事件
cancelBubbe() 取消事件冒泡
returnValue() 取消事件默认行为
-
a标签不能套a标签,p标签不能套块标签
-
B选项输出值为0是因为forEach方法在数组元素为空时会跳过执行回调函数,相当于此选项回调函数并未执行,所以还是输出0。
-
行内js——javascript:return void(0)或javascript:return confirm(”……”);
-
JavaScript高级程序设计上面的原话:RegExp 对象的主要方法是 exec(),该方法是专门为捕获组而设计的。 exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回 null。
-

-
d.setDate(n);
n表示一个月中的一天的一个数值(1 ~ 31):
0 为上一个月的最后一天 -1 为上一个月最后一天之前的一天 如果当月有 31 天: 32 为下个月的第一天 如果当月有 30 天:
32 为下一个月的第二天;
40 为下一个月的第9天;
-
var a = 100; function a(){ var a = 200; console.log(a); } a();在预解析下,函数和变量都会发生提升,且函数提升在变量提升之前,故在全局作用域下,a首先被定义为函数变量,接着又被覆盖为一个数值型,然后再调用函数a,显然会抛出异常,原因是a已经不再是函数。在函数内部,还存在着局部变量a,但它对函数外部的变量不会产生影响。
JavaScript刷题【错题本】
Maintained by · YihuiEdit on GitHub
Keep reading
View all posts计算机网络基础【错题本】
1. 当两种相同类型但又使用不同通信协议的网络进行互联时,就需要使用() 路由器 不同通信协议至少在网络层才能兼容 中继器集线器是物理层 网桥是数据链路层 2. ATM 既可以用于广域网,又可以用于局域网,这是因为它的工作原理与 Ethernet 基本上是相同的。( X ) ATM可以用于广域网,也可以用于局域网…
Read article牛客网刷题01
1. 修改this指向 封装函数 f,使 f 的 this 指向指定的对象。 这里给出三种写法,哪种都可以。 相关知识点: 1. apply、call、bind区别 apply、call、bind的作用都是修改执行上下文 apply、call都是返回函数立即执行的 结果 ,其中apply第二个参数之后是数组Arr…
Read article牛客网刷题02
11. 将字符串转换为驼峰格式 题目描述 css 中经常有类似 background-image 这种通过 - 连接的字符,通过 javascript 设置样式的时候需要将这种样式转换成 backgroundImage 驼峰格式,请完成此转换功能 1. 以 - 为分隔符,将第二个起的非空单词首字母转为大写 2. …
Read article