平时遇到的js一些方法,或者是面试题,又或者总结之类的。。
javascript有哪些方法定义对象
|
判断对象是否含有某个属性(in 和 hasOwnProperty区别)
|
判断某个属性是否存在与某个对象中,可以通过in运算符,hasOwnProperty()和propertyIsEnumerable()方法来完成.
in运算符,如果对象的自有属性或继承属性中包含这个属性,则返回true.
对象的hasOwnProperty()方法用来检测给定的名字是否是对象的自有属性.
propertyIsEnumerable()是hasOwnProperty()的增强版,只有检测到时自有属性且这个属性的可枚举性为true时才能返回true.
indexOf()
|
该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。
如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。
Math
- Math.random() 0.0-1.0 随机数
- Math.ceil() 向上取整
- Math.floor() 一律舍去 仅保留整数
- Math.round() 进行四舍五入
数组转字符串
需要将数组元素用某个字符连接成字符串,示例代码如下:
字符串转数组
实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下:
判断一个元素是否是数组
// 这里提供两种js方法。返回true则是数组。
toArray原生写法
|
Array.prototype.slice.call(arguments)
看一下call的使用
可以看到函数a中的this指向call传入的参数
到这里,基本就差不多了,我们可以大胆猜一下slice的内部实现,如下:
用闭包随机生成id
click和onclick
click()方法的主要作用是触发调用click方法元素onclick事件。
getAttribute()和setAttribute()兼容性问题
getAttribute()和setAttribute()在设置或者获取某些属性的时候,会存在一些兼容性问题,那么哪些属性会出现问题呢?
-1.class
-2.for
-3.cellspacing
-4.cellpadding
-5.tabindex
-6.readonly
-7.maxlength
-8.rowspan
-9.colspan
-10.usemap
-11.frameborder
-12.contenteditable
-13.style
|