javascript积累六
2015-12-08 22:03
549 查看
1.
6种基本类型:number,string,Boolean,object,function,undefine.
2.
8种预定义的类函数:Object,String, Boolean, Number,Function,Date,Array,RegExp.
3.Number
String
Boolean
Object: Function
Array -->重新设置数组的length属性会增加或删除数组元素。
Date --> var s = + new Date();取得现在时间的毫秒,还有另一种:Date.now(),不过存在兼容问题。
RegExp
Math
Null
Undefinded
4.
(1)数组中的方法
concat 返回一个新数组,将元素添加在结尾。
pop 移除并返回最后一个元素。
push 在数组的结尾添加一个或多个元素(类似于ar[ar.length])
slice 返回一个子数组
sort 对数组排序
splice 把数组中的一部分去掉并用其它值取代
unshift 将元素拼接到数组的开头
(2)
函数可以在函数体中存取一个名为arguments的内部对象,这个对象就如同一个类似于数组的对象一样,它包括了所有被传入函数的值
(3)
在function fuName(arg1,arg2){}中,fuName是一个指针,指向了函数这个对象在内存中的地址。如果只想访问该指针,而不调用该函数,
则不应带函数名(fuName)后的括号。
(4)
每个函数内部特殊的对象:this,arguments. arguments是一个类数组对象,包含着传入函数中的所有参数,该对象有一个callee属性,
它指向拥有arguments这个对象的函数;this引用的是函数据已执行的环境对象。
(5)
每个函数包含两个属性:length和proptotype .length指的是函数接收的命名参数的个数;propertype它保存了函数的所有实例方法
(6)
构造函数里一般只放置属性,而方法则使用原型进行扩展?
(7)
在赋值原型prototype的时候使用function立即执行的表达式来赋值:
Person.prototype = (function () { })();
(8)
hasOwnProperty 用来确定某属性只属于实例对象而不属于原型对象。Person.hasOwnProperty(name) -->bool
(9)
定义一个匿名函数并立即调用的方法:
(function(){})();
(10)
构造函数产生实例对象,实例对象源于原型对象(原型对象的一个副本)。
(11)call()方法的解释:
了解一下call()是做什么的,call方法作为一个function执行代表该方法可以让另外一个对象作为调用者来调用,
call方法的第一个参数是对象调用者,随后的其它参数是要传给调用method的参数(如果声明了的话)。比如:
function method() {
alert(this === window);
}
method(); //true
method.call(document); //false;
applay与call 它们的作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数方式有所区别
---------------------------------------------------------------------------------------
字符串里的方法:
(1) substring
返回字符串的一个子串,传入参数是起始位置和结束位置
(2) substr
返回字符串的一个子串,传入参数是起始位置和返回个数
(3) slice
返回字符串的一个子串,传入参数是起始位置和长度
上面的三个方法很相似,但传入的参数为负数就有很大的不同了。
(4) charAt
返回指定索引处的字符
chatCodeAt
返回指定索引处的字符编码
(5) indexOf
返回子字符串所在位置
(6) split 以指定符号分隔字符串,并返回一个数组。
通过将字符串划分成子串,将一个字符串做成一个字符串数组
正则表达式RegExp里的方法
正则表达式的定义:(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征
http://www.cnblogs.com/libinqq/archive/2008/07/31/1257699.html
test exec match search replace split
(1)正则里限定符号的意思:
? 零次 或 一次
* 零次 或 多次
+ 最少一次 或 多次
{n} 匹配n次
{n,} 匹配n次或更多
{n,m} 匹配n到m次
(2)非捕获性分组
如果要创建一个非捕获性分组,只要在左括号的后面加上一个问号和一个紧跟的冒号:
var reNumbers = /#(?:\d+)/;
取得捕获后的分组后使用:RexExp.$n(注意是RexExp而不是创建的变量名);
一些例子:
\(?0\d{2}[) -]?\d{8} --》像(010)88886666,或022-22334455,或02912345678等。
首先是一个转义字符\(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)或-或空格中的一个,
它出现1次或不出现(?),最后是8个数字(\d{8})。但它也能匹配010)12345678或(022-87654321这样的“不正确”的格式。
正确的是这个:\(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8}
如果单个字符要出现多次,可以使用限定符;如果想重复多个字符,就得使用分组,然后使用限定符。
(3)
通过在 '*'、 '+' 或 '?' 限定符后放置 '?',该表达式就从贪婪匹配转为了非贪婪或最小匹配。
(4) 定位符:"^","$","\b","\B"
不能对定位符使用限定符。因为在一个换行符或者单词边界的前面或后面不会有连续多个位置,因此诸如 '^*' 的表达式是不允许的。
(5)
除非真的是需要捕获子匹配,否则请不要使用(?:)。由于不需要花时间和内存来存储那些子匹配,这种正则表达式的效率将更高。
正则表达式的一个网址:http://deerchao.net/tutorials/regex/regex.htm
(1)
如果要创建下拉框,可以如此:
var options = new Option(param1,param2,param3,param4);至少须一个参数
(2)
在获取到了nodeLists后,取得元素可以如此:
nodeLists[i],nodeLists.namedItem(name);但要考虑浏览器的问题。
(3)
在IE下,不支持document.getElementsByClassName("name");
建议用别的,或者$(".className").get()
(1)
问题说明:innerText在IE中能正常工作,但是innerText在FireFox中却不行。
解决方法:在非IE浏览器中使用textContent代替innerText。
示例:
if(navigator.appName.indexOf("Explorer") >-1){
document.getElementById('element').innerText = "my text";
} else{
document.getElementById('element').textContent = ";my 3text";
}
[注] innerHTML 同时被ie、firefox等浏览器支持,其他的,如outerHTML等只被ie支持,最好不用。
(2)
可以利用事件的event对象类型eventType来为同一个元素绑定多个事件
switch(event.eventType){
case "click":...
break;
case "mouseover":...
break;
}
(3)<
c285
br />
对jQuery的扩展的两种方法:
jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。可以理解为添加静态方法
jQuery.fn.extend(object);给jQuery对象添加方法。就是为jQuery类添加“成员函数”
(4)
jQuery中取得第N个元素
:nth-child(index);
这样就可以方便的在指定的位置插入节点。
关于XML
在XML文件中不能含有&(携带多个参数用的),不然浏览器解析不了,这样可以在&后面加上amp;也就是a=1&b=2这样。
6种基本类型:number,string,Boolean,object,function,undefine.
2.
8种预定义的类函数:Object,String, Boolean, Number,Function,Date,Array,RegExp.
3.Number
String
Boolean
Object: Function
Array -->重新设置数组的length属性会增加或删除数组元素。
Date --> var s = + new Date();取得现在时间的毫秒,还有另一种:Date.now(),不过存在兼容问题。
RegExp
Math
Null
Undefinded
4.
(1)数组中的方法
concat 返回一个新数组,将元素添加在结尾。
pop 移除并返回最后一个元素。
push 在数组的结尾添加一个或多个元素(类似于ar[ar.length])
slice 返回一个子数组
sort 对数组排序
splice 把数组中的一部分去掉并用其它值取代
unshift 将元素拼接到数组的开头
(2)
函数可以在函数体中存取一个名为arguments的内部对象,这个对象就如同一个类似于数组的对象一样,它包括了所有被传入函数的值
(3)
在function fuName(arg1,arg2){}中,fuName是一个指针,指向了函数这个对象在内存中的地址。如果只想访问该指针,而不调用该函数,
则不应带函数名(fuName)后的括号。
(4)
每个函数内部特殊的对象:this,arguments. arguments是一个类数组对象,包含着传入函数中的所有参数,该对象有一个callee属性,
它指向拥有arguments这个对象的函数;this引用的是函数据已执行的环境对象。
(5)
每个函数包含两个属性:length和proptotype .length指的是函数接收的命名参数的个数;propertype它保存了函数的所有实例方法
(6)
构造函数里一般只放置属性,而方法则使用原型进行扩展?
(7)
在赋值原型prototype的时候使用function立即执行的表达式来赋值:
Person.prototype = (function () { })();
(8)
hasOwnProperty 用来确定某属性只属于实例对象而不属于原型对象。Person.hasOwnProperty(name) -->bool
(9)
定义一个匿名函数并立即调用的方法:
(function(){})();
(10)
构造函数产生实例对象,实例对象源于原型对象(原型对象的一个副本)。
(11)call()方法的解释:
了解一下call()是做什么的,call方法作为一个function执行代表该方法可以让另外一个对象作为调用者来调用,
call方法的第一个参数是对象调用者,随后的其它参数是要传给调用method的参数(如果声明了的话)。比如:
function method() {
alert(this === window);
}
method(); //true
method.call(document); //false;
applay与call 它们的作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数方式有所区别
---------------------------------------------------------------------------------------
字符串里的方法:
(1) substring
返回字符串的一个子串,传入参数是起始位置和结束位置
(2) substr
返回字符串的一个子串,传入参数是起始位置和返回个数
(3) slice
返回字符串的一个子串,传入参数是起始位置和长度
上面的三个方法很相似,但传入的参数为负数就有很大的不同了。
(4) charAt
返回指定索引处的字符
chatCodeAt
返回指定索引处的字符编码
(5) indexOf
返回子字符串所在位置
(6) split 以指定符号分隔字符串,并返回一个数组。
通过将字符串划分成子串,将一个字符串做成一个字符串数组
正则表达式RegExp里的方法
正则表达式的定义:(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征
http://www.cnblogs.com/libinqq/archive/2008/07/31/1257699.html
test exec match search replace split
(1)正则里限定符号的意思:
? 零次 或 一次
* 零次 或 多次
+ 最少一次 或 多次
{n} 匹配n次
{n,} 匹配n次或更多
{n,m} 匹配n到m次
(2)非捕获性分组
如果要创建一个非捕获性分组,只要在左括号的后面加上一个问号和一个紧跟的冒号:
var reNumbers = /#(?:\d+)/;
取得捕获后的分组后使用:RexExp.$n(注意是RexExp而不是创建的变量名);
一些例子:
\(?0\d{2}[) -]?\d{8} --》像(010)88886666,或022-22334455,或02912345678等。
首先是一个转义字符\(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)或-或空格中的一个,
它出现1次或不出现(?),最后是8个数字(\d{8})。但它也能匹配010)12345678或(022-87654321这样的“不正确”的格式。
正确的是这个:\(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8}
如果单个字符要出现多次,可以使用限定符;如果想重复多个字符,就得使用分组,然后使用限定符。
(3)
通过在 '*'、 '+' 或 '?' 限定符后放置 '?',该表达式就从贪婪匹配转为了非贪婪或最小匹配。
(4) 定位符:"^","$","\b","\B"
不能对定位符使用限定符。因为在一个换行符或者单词边界的前面或后面不会有连续多个位置,因此诸如 '^*' 的表达式是不允许的。
(5)
除非真的是需要捕获子匹配,否则请不要使用(?:)。由于不需要花时间和内存来存储那些子匹配,这种正则表达式的效率将更高。
正则表达式的一个网址:http://deerchao.net/tutorials/regex/regex.htm
(1)
如果要创建下拉框,可以如此:
var options = new Option(param1,param2,param3,param4);至少须一个参数
(2)
在获取到了nodeLists后,取得元素可以如此:
nodeLists[i],nodeLists.namedItem(name);但要考虑浏览器的问题。
(3)
在IE下,不支持document.getElementsByClassName("name");
建议用别的,或者$(".className").get()
(1)
问题说明:innerText在IE中能正常工作,但是innerText在FireFox中却不行。
解决方法:在非IE浏览器中使用textContent代替innerText。
示例:
if(navigator.appName.indexOf("Explorer") >-1){
document.getElementById('element').innerText = "my text";
} else{
document.getElementById('element').textContent = ";my 3text";
}
[注] innerHTML 同时被ie、firefox等浏览器支持,其他的,如outerHTML等只被ie支持,最好不用。
(2)
可以利用事件的event对象类型eventType来为同一个元素绑定多个事件
switch(event.eventType){
case "click":...
break;
case "mouseover":...
break;
}
(3)<
c285
br />
对jQuery的扩展的两种方法:
jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。可以理解为添加静态方法
jQuery.fn.extend(object);给jQuery对象添加方法。就是为jQuery类添加“成员函数”
(4)
jQuery中取得第N个元素
:nth-child(index);
这样就可以方便的在指定的位置插入节点。
关于XML
在XML文件中不能含有&(携带多个参数用的),不然浏览器解析不了,这样可以在&后面加上amp;也就是a=1&b=2这样。
相关文章推荐
- 【学习】Javascript设计模式——反模式
- js验证IP及子网掩码的合法性
- js判断ip地址,子网掩码,网关的逻辑性检查
- JSP SMARTUPLOAD组件:上传文件时同时获取表单参数
- 解决JS在url中传递参数时参数包含中文乱码的问题
- sublime3 JavaScript Snippets 插件快捷命令大全
- JavaScript部分知识点汇总
- 在网页中如何使用JS控制input只能输入数字
- js日期时间比较函数
- javascript-一周总结
- html5结合JavaScript实现龙播图
- js判断MAC地址
- js判断浏览器在PC中打开还是移动设备中打开
- Javascript中最常用的55个经典技巧
- html+css+javascript 基础知识(二)
- 学习贪吃蛇JS项目实战笔记3
- 学习贪吃蛇JS项目实战笔记2
- html+css+javascript 基础知识(一)
- javascript如何写热点图
- json