js的一些基本操作

  最近看了看在线笔试,发现自己js的基本操作都生疏了,编码太少了。回过头来重新看了看,东西还是不少,零零散散地总结一下。

 Number()在转换字符转时比较复杂而且不够合理,一般用parseInt,使用parseInt进行十六进制和八进制转换要提供第二个参数,如parseInt(“070”,8)。Number对于空字符串会返回0.parseInt返回NaN。
parseFloat()只解析十进制数。toString()中传入参数,如2,8,16可以将十进制数转化为其他进制数。转化负数时,并不会得到复杂的补码,而是负号+绝对值转化后的数。
hasOwnProperty(propertyName)用于检查给定的属性在当前对象实例中(而不是在对象的原型中)是否存在。
constructor保存着用于创建当前对象的函数。
toString,toLocalString,valueOf
push()-pop(),push()-shift()。concat(),slice(),splice()返回副本,不会对原数组进行修改。concat用于拼接,将参数拼接到调用该方法的数组后面,不传参数则返回该数组的一个副本。slice()用于截取,接收两个参数,开始位置和结束位置。若结束位置小于开始位置,则返回空数组,若参数中有负数,则用数组长度加上该负数的值来确定位置。

splice()接收三个参数,第一个参数表示起始位置,第二个参数表示删除项的个数,第三个参数表示要插入的项,会插在第一个参数后面。这里,第三个参数之后可以继续传参,都将作为插入项。
位操作
~按位非 &按位与 |按位或 ^按位异或
<<按位左移,不会影响符号位。>>有符号右移(符号位不参与移动)>>>无符号右移
数组reverse()方法,反转数组的顺序。sort()方法将数组进行升序排序,但比较的是字符大小,不是数值大小。可传一个比较函数作为参数。当比较函数的第一个参数应该位于第二个参数之前,返回-1。相等返回0,否则返回1。若想让数组按数值大小升序排列,compare应如下:function compare(value1,value2){if(value1<value2){return -1;}else if(value1>value2){return 1;}else{return 0;}}
every()对数组的每一项运行给定函数,若每一项都返回true,则返回true
filter()返回是函数返回true的数组项的集合(也就是数组)
forEach()没返回值,只对每一项运行该函数。
map()返回调用结果组成的数组
some()若任意返回true,则返回true
数组的迭代方法reduce()和reduceRight()前者从第一项开始,后者从最后一项开始。接收两个参数,一个在每一项上调用的函数,一个可选的作为归并基础的初始值。调用函数包含四个参数,前一个值,当前值,项的索引,数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上。例:使用reduce方法求数组项之和
var values = [1,2,3,4,5];
var sum = values.reduce(function (prev,cur,index,array){return prev + cur;});alert(sum);


每个节点都有一个nodeType属性,表示节点的类型。节点类型由12个常数值表示,任何节点必居其一。
if(someNode.nodeType == Node.ELEMENT_NODE){alert("node is an element.");}在ie8极其之前,IE没有公开Node类型的构造函数。所以为了兼容ie,将Node.ELEMENT_NODE用他的常数值代替(元素节点的常数值为1)。


childNodes()返回子节点的集合,不是数组。parentNode()返回节点的父节点。firstChild和lastChild的值分别为第一个和最后一个子节点。
hasChildNodes()会在节点有子节点的情况下返回true。
appendChild(newNode)会将一个新节点插入节点集合的末尾,并返回该节点。
insertBefore(newNode,参照节点)将新结点插入参照节点之前,并返回该新结点。若参照节点为null,则插在末尾。
replaceChild(newNode,被替换节点)用来替换节点,并返回被替换的节点。
removeChild(node)移除节点,并把被移除节点返回。这两个方法,被删除和替换的节点仍在文档中,不过文档中已经没了他们的位置。
cloneNode(boolean)方法,当传入true,进行深度复制,级复制该节点及整个子节点树并返回。传入false浅复制,只复制节点本身。
对于元素节点,nodeName保存元素的标签名,nodeValue的值始终为null。
特殊集合:document.anchors,document.applets,document.forms,docuemtn.images,docuemtn.links.
html元素的几个属性:id,title,lang,dir,className。上述这些属性都可以用来取得或修改相应的特性值。
也可以使用getAttribute(特性名)来获取值,setAttribute(特性名,值)来设置值。
document.createElement(标签名)用来创建新元素。也可以这样document.createElement("<div id=\"myNewDiv\" ...></div>");
浏览器可能将空白符当做文本节点,如:
<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
ul元素会有7个子元素,3个li元素,4个文本节点。
<ul><li></li><li></li><li></li></ul>如果这样写,就只有3个子元素。所以,在执行某项操作前,最好对先检查nodeType
document.createTextNode("文本内容")用来创建文本节点,文本节点的几个方法:appendData(text)将text天际到节点末尾,deleteData(offset,count)从offset指定的位置开始删除count个字符insetData(offset,text)在offset指定的位置插入text。
element.normalize()把element的相邻子文本节点合并为一个。
querySelector()和querySelectorAll()比之前的选择器性能更好,也更方便。
几个新属性也避免了对节点类型的判断(防止是文本节点):
children,childElementCount,firstElementChild,lastElementChild,previousElementSibling,nextElementSibling。这些ie8+才支持。

样式操作

  在html中定义样式的方式有三种:通过link元素包含外部样式表文件,使用style元素定义嵌入样式,以及使用style特性针对特定元素的样式。访问第三种的样式信息,可以使用style属性。如:node.style.backgroundColor = "red";(其中,css中的float属性不能直接使用,因为float是js中的保留字,应该用cssFloat,在ie中为styleFloat)。

  style中不包含从其他样式表层叠而来的样式信息,若想取得所有计算后的样式,要使用document.defaultView.getComputedStyle(节点,伪类名称)其中伪类名称如:after等,若不需要,则传入null。

ie不支持getComputedStyle()方法,在ie中,每个具有style属性的元素还支持一个currentStyle属性,用来获得计算后的样式node.currentStyle。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值