这个表达式中右边+是左关联,结果是字符串,如果右边是-,则结果是数字
同样又是变量提升和函数链式调用的问题,一直很难理解
输出结果为10,temp–虽然再括号里面但是会放在最后运算
JavaScript中有变量提升和函数提升,而且函数提升的优先级是大于变量的。
注意:相同作用域时,只声明变量而不赋值,变量就是原来的值,如果子作用域声明而不赋值,则函数内该值为undefined
这段代码中,console.log()这个方法是异步的,setTimeout执行到这里的时候会先把这个方法放入执行队列中,等待执行,其中异步任务分为宏任务和微任务,微任务的优先级高于宏任务,promise.then()执行的是微任务,setTimeout是宏任务
Ajax和Flash的优势和劣势:
Ajax优势:易开发,费用,开放性,可搜索
Flash优势:多媒体处理,兼容性,矢量图形,客户端资源调度
Ajax劣势:破坏浏览器的后退功能,动态更新是用户无法将某个状态收入收藏夹中
Flash劣势:二进制格式,格式私有,flash文件通常较大,第一次使用的话需要等待很久,性能问题
apply,call,bind的用法和区别
用途:改变this的指向
apply和call会是函数立即执行,而bind会返回一个函数,需要时再调用
bind是为函数绑定一个上下文的this
apply会将数组参数转换为参数列表
这个题之前一直考虑的是undefined和null根本不是一个意思所以觉得不相等,但是其实undefined是派生自null值的,所以在不严格相等的情况下这个两个值是相等的
XMLHttpRequest对象有readyState和status两个属性
readyState有五种状态:
0:未初始化,XMLHttpRequest对象已经创建,但是还没有调用open方法
1:载入,已经调用open方法但是没有发送请求
2:载入完成,发送请求成功
3:交互,可以接收部分响应
4:完成,已经接收所有数据,连接已经关闭
status是服务器的状态
contact方法不会改变自身的数组,而是合并两个数组返回一个新的数组
逗号表达式中只有最后一项是有效的,所以j<6才有效,忽略i<10,本题结果为60