看了javascript高级程序设计后对js的一些归纳总结,以及一些面试题的代码
概念
- js的对象均继承于boject
- call() 调用一个对象的一个方法,以另一个对象替换当前对象(第二参数任意)
- apply() 应用某一对象的一个方法,用另一个对象替换当前对象(第二参数必须为数组或argument)
- callee,caller(递归)
- === 全等 与==的区别在于操作数未经任何转换时就相等(==在对比的时候做了隐式转换)。
- prototype(原型) 指向一个对象(指针)
- hasOwnProperty() 确定用的是实例还是原型对象
- push() 向数组的末尾添加一个或多个元素,并返回新的长度
- unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
- pop() 删除并返回数组的最后一个元素
- shift() 删除并返回数组的第一个元素
- 构造函数是一种可初始化其类的实例的成员函数。 构造函数具有与类相同的名称,没有返回值。 构造函数可以具有任意数量的参数,类可以具有任意数量的重载构造函数。
- 闭包就是能够读取其他函数内部变量的函数
笔记
slice() 方法
- 可提取字符串的某个部分,并以新的字符串返回被提取的部分。
- 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符
|
|
sort() 方法
用于对数组的元素进行排序
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中a应该出现在b之前,则返回一个小于0的值。那么 a 会被排列到 b 之前
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。b 会被排列到 a 之前
参考资料12345678910var arr=[1,3,4,52010,3001,20,123]arr.sort(function(a,b){if(a < b){return -1;}// a 会被排列到 b 之前else if(a > b){return 1;}// b 会被排列到 a 之前else if(a == b){return 0;}//此时不排序})data.sort(function(a,b){return a[1] - b[1];//升序排列})
jq
siblings()方法
|
|
SetTimeout与setInterval区别
- setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
- setInterval 在执行时,它从载入后,每隔指定的时间就执行一次表达式
setTimeout (表达式,延时时间)
setInterval(表达式,交互时间)
延时时间/交互时间是以豪秒为单位的(1000ms=1s)1234567function run(){ // 其他代码 setTimeout(function(){ run(); }, 10000);}run();
以上面的代码来说, 虽然设置的是10s执行一次, 但是实际时间却是需要// 其他代码的执行时间
来确定
即setTimeout的间隔时间是, // 其他代码执行时间
+ 10s
|
|
而setInterval, 不会有上面的问题, 但是如果run()的执行时间, 操作大于10s, 那么甚至可能跳过任务
参考资料
有关JS的面试题
删除数组内重复内容
|
|
数组的随机排序
|
|
一个有意思的题目:
|
|