JS interveiw
Basic:
- String
- Number
- Boolean
- undefined
- null
- symbol
complex
Math
HTTP
- 1xx infor
- 2xx success
- 3xx redirect
- 4xx client error
- 5xx server error
Ajax状态码
- 0- 未初始化,还没用调用send()
- 1- (载入)已经调用send(),正在发送请求
- 2-(载入完成)send()方法执行完成
- 3-(交互)正在解析响应内容
- 4- (完成)响应内容解析完成
ajax asynchronous JavaScript and xml
- 无需刷新页面请求数据,
- 可以把一起服务端的任务转嫁到客户端处理,减轻服务器负担,节省带宽
- 浏览器支持好,无需插件
- 不支持浏览器回退按钮
- 暴露了http交互细节
- 对seo支持比较弱
JavaScript的闭包
function a(x){
var tem=3;
function b(y){
console.log(x+y+(++tem));
}
}
a函数中的b函数就是一个闭包,b函数可以使用a函数的局部变量,参数,最典型的闭包应该是这样的,将定义在函数中的函数作为返回值
function a(x){
var tem =3 ;
function b(y){
console.log(x+y+(++tem));
}
return b;
}
闭包的缺点是,因为内部闭包函数可以访问外部函数的变量,所以外部函数的变量不能被释放,如果闭包嵌套太多,会导致内存占用大,要合理使用闭包
Splice()方法从 数组中添加/删除项目,然后返回被删除的项目
//会改变原来数组
arrayObject.splice(整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置,要删除的项目数量-如果设置为 0-则不会删除项目,向数组添加的新项目)
<script type="text/javascript">
var arr = new Array(6)
arr[0]="George"
arr[1]="John"
arr[2]="Thomas"
arr[3]="James"
arr[4]="Andrew"
arr[5]="Martin"
document.write(arr+"<br/>")
arr.splice(2,0,"william")
document.write(arr+"<br/>")
<script>
//George,John,Thomas,James,Andrew,Martin
//George,John,william,Thomas,James,Andrew,Martin
JavaScript slice() 方法
Slice()方法从已有数组中返回选定元素
arrayObject.slice(规定从何处开始选取-如果是负数-那么它规定从数组尾部开始算起的位置,规定从何处结束选取)
<script type=""text/javascript"/>
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr+"<br/>")
document.write(arr.slice(1)+"<br/>")
document.write(arr)
</script>
//George,John,Thomas
//John,Thomas
//George,John,Thomas