- hasOwnProperty的作用是
hasOwnProperty: 是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
isPrototypeOf : 是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。 - javascript变量定义规则
第一个字符必须是一个 ASCII 字母(大小写均可),或一个下划线(_)。注意第一个字符不能是数字。
后续的字符必须是字母、数字或下划线。
变量名称一定不能是 保留字。 可以为$ - Ajax与Flash的优缺点
Ajax的优势:1.可搜索性 2.开放性 3.费用 4.易用性 5.易于开发。
Flash的优势:1.多媒体处理 2.兼容性 3.矢量图形 4.客户端资源调度
Ajax的劣势:1.它可能破坏浏览器的后退功能 2.使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中 ,不过这些都有相关方法解决。
Flash的劣势:1.二进制格式 2.格式私有 3.flash 文件经常会很大,用户第一次使用的时候需要忍耐较长的等待时间 4.性能问题 - 闭包
闭包可以访问其他函数内部变量的函数,而立即执行函数穿参,相当于父级变量;闭包需要手动执行,不能自主释放内存;而立即执行函数相当于做了一次函数执行,最后释放内存。逻辑上立即执行函数可以理解为:声明闭包函数-执行-释放内存 - History对象的属性或方法
length 返回浏览器历史列表中的URL数量
back() 加载 history 列表中的前一个URL
forward() 加载 history 列表中的下一个URL
go() 加载history列表中的某个具体页面。 - JavaScript的全局函数
6(编码相关)+ 2(数据处理)+ 4(数字相关)+ 1(特殊)
编码相关:
escape()、unescape()、encodeURI()、decodeURI()、
encodeURIComponent()、decodeURIComponent()
数据处理:
Number()、String()
数字相关:
isFinite()、isNaN()、parseFloat()、parseInt()
特殊:
eval() - 哪些方式可以改变作用域链
1. while 只是在函数局部环境或者全局环境运行,并不会改变作用域链
2. try catch和with 虽然执行环境的类型总共只有两种–全局和局部(函数),但还是有其他办法来延长作用域链。这么说是因为有些语句可以在作用域链的前端临时增加一个变量对象,该变量对象会在代码执行后被移除。在两种情况下回发生这种现象。具体来说,就是当执行流进入下列任何一个语句时,作用域链就会得到加强: try catch语句的catch块; - ({} + ‘b’ > {} + ‘a’)返回值
console.log({} + ‘b’) “[object Object]b”
console.log({} + ‘a’) “[object Object]a”
console.log(({} + ‘b’ > {} + ‘a’)) true
1.“+”连接字符会转换为字符
2.“+”优先级高于“>”
3.“>”运算符比较字符串大小时,会把字符串转换为ASCII码依次比较,这里很明显b大于a - –运算符
–运算符前置和后置的区别
如果该运算符作为后置操作符,则返回它递减之前的值。
如果该运算符作为前置操作符,则返回它递减之后的值。 - 代码回收规则
1. 全局变量不会被回收。
2. 局部变量会被回收,也就是函数一旦运行完以后,函数内部的东西都会被销毁。
3. 只要被另外一个作用域所引用就不会被回收 - 数组的方法
可以改变原数组:push,pop,shift,unshift,splice,sort,reverse,forEach
不能改变原数组:filter,concat,slice,map - 以下代码执行后,array的结果是?
var array=[-1,1,3,4,6,10];
array.sort((a,b)=>Math.abs(a-3)-Math.abs(b-3));
sort() 方法用于对数组的元素进行排序,参数决定排序的顺序。
原数组var array=[-1,1,3,4,6,10];
参数(a,b)=>Math.abs(a-3)-Math.abs(b-3):即数值减3的绝对值[4,2,0,1,3,7]作为参数决定排序。
根据绝对值减3大小排列[0,1,2,3,4,7],对应的原数组排序后为[3,4,1,6,-1,10] - 如果不给cookie设置过期时间会怎么样
cookie的有效时间默认为-1,如果不进行设置的话,就会默认在浏览器会话关闭时结束。
可以通过setMaxAge()方法设置cookie的生命期。
当setMaxAge(0)表示立刻删除该浏览器上指定的cookie - JS原型
1、所有的引用类型(数组、对象、函数),都具有对象特性,即可自由扩展属性(除了“null”以外); 2、所有的引用类型(数组、对象、函数),都有一个__proto__(隐式原型)属性,属性值是一个普通的对象; 3、所有的函数,都有一个prototype(显式原型)属性,属性值也是一个普通对象; 4、所有的引用类型(数组、对象、函数),proto__属性值指向(完全相等)它的构造函数的“prototype”属性值; 5、当试图得到一个对象的某个属性时,如果这个对象本身没有这个属性,那么会去__proto(即它的构造函数的prototype中)寻找。
牛客网刷题
最新推荐文章于 2023-03-14 13:51:02 发布