JS interview

JS interveiw

Basic:

  1. String
  2. Number
  3. Boolean
  4. undefined
  5. null
  6. symbol

complex

  1. Object
  2. Array
  3. Function
  4. RegExp
  5. Date
  6. Error global

Math

HTTP

  1. 1xx infor
  2. 2xx success
  3. 3xx redirect
  4. 4xx client error
  5. 5xx server error

Ajax状态码

  1. 0- 未初始化,还没用调用send()
  2. 1- (载入)已经调用send(),正在发送请求
  3. 2-(载入完成)send()方法执行完成
  4. 3-(交互)正在解析响应内容
  5. 4- (完成)响应内容解析完成

ajax asynchronous JavaScript and xml

  1. 无需刷新页面请求数据,
  2. 可以把一起服务端的任务转嫁到客户端处理,减轻服务器负担,节省带宽
  3. 浏览器支持好,无需插件
  4. 不支持浏览器回退按钮
  5. 暴露了http交互细节
  6. 对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