JS笔记整理(二)

1.!!express 即可把express变成bollean型的.

2. 可变参数
function wei(){
for(var i in arguments){
alert(arguments[i]);
}
}
wei("a","b","c");
#以上代码是把web()函数中传入的参数全部打印出来,注意其中的arguments参数对象.

3.try{}catch(e){}finally{}
#注意finally{}是无论如何程序最终会执行finally块里的这个语句.

4.”[]”和”.”都是用来把对象里的属性表示出来,当然也可以表示数组的下标,因为数组也是obj中的一种.可以用typeof()来查看.

5.for(var I in obj或arr){}
#以上for(in)这种语法主要是针对遍历对象对属性用的,而也可以用来遍历数组来腻用,因为数组也是obj中的一种.

6. 遍历body对象
for(var each in document.body){
document.write(each+"=>"+document.body[each]+"<br>");
}
#以上是把document.body对象的属性全部遍历出来,小心在ie中会出现死循环的症状.

7.js中数值类型中并没有整数类型,只有浮点类型.

8.var y=x.toString(2);
#y的值为字符串”10001”
Var y=(255).toString(16);
#y是”FF”;
#toString()的结果都是字符串,其中数值表达式为(255),要用括号括起来.

9.js中特殊的数值常量:Infinity,NaN
Infinity是正无穷大,而-Infinity是负无穷大.

10.isNaN()来判断一个数值,表示非数字,而isFinite()当数值为正负Infiity或NaN时返回false,可能用它来判定常规数值.

11.js中数组是一种数据的集合,它的length属性不但可以读,也可以写,设置数组的length为0,可以清除数组中的所有元素(不包括那些下标不为整数的数组元素);

12.采用数组常量(arr[“a”,”b”])比采用array()构造函数数组不但形式上更为简洁,而且执行效率高得多,因些建议尽可能采用数组常量这种形式来构造和初始化数组.

13.json对象的嵌套:
Var point={x:1,y:2};
Var rectangle={
upperLeft:{x:2,y:2},
lowerRight:{x:4,y:4}
}
var josnobj={a:100,b:”abc”,c:true,d:[1,2,3],e:{x:100,y:200}};

14.由于函数具有被调用时创建封闭环境的特性,因此在某些情况下它又被为”闭包”,每一个函数都会新开辟一块堆栈.

15.数据类型,数值、boolean、null和undefined这些都属于按值传递类型,而数组、对象和函数属于按引用传递类型,而字符串两者都可以,而且最后是等到价的,但一般常按值进行比较.

16.一个函数可以有零个或者多个形参,函数对象定义时的形参数量可以通过length属性获得,function max(x,y){
Return x>y?x:y;
}
要获得以上函数的形参个数可以能过,alert(max.length)得到.

17.函数的实参和形参,例如:max(a,b){return x>y?x:y;},这里的ab为形参,而max(3,4)中的3,4则为实参,如果实参多于形参,则总共传递了多少个参数可以通过arguments对象来获得.

18.函数的形参数量->max.length,而函数实参数量->max.arguments.length来获得.

19.除了通过下标访问参数之外,Arguments对象还提供了一个有用的属性,叫做callee,它被用来引用正在执行的函数,它提供了一个匿名的递归调用能力,这对于闭包来说非常有用,例如计算10的阶乘.
Javascript:(function(x){return x>1?x*arguments.callee(x-1):1})(10)

20.显示日期带中文星期的js脚本:
<script>
setInterval(
function(){
with(new Date()){
test2.innerHTML=toLocaleString();
}
}
,500);
</script>
#有的真是恰如其分.

21.js内置对象,最常见的有Math对象,Date对象,Error对象,Array对象,String对象和RegExp对象,还有一些特殊的内置对象Function对象,Arguments对象,Number对象,Boolean对象,String对象,js还提供了一些全局常量和函数,NaN,Infinity,undefined,null,isFinite,isNaN(),parseInt(),parseFloat()等.

22.function test(){
Return Array.apply(this,arguments);
}
#小技巧:将传给函数test()的参数列表转换为数组对象返回.

23.值得注意的是,delete操作虽然能够删除数组元素,但它并不会改变数组的length属性,因此如果要删除某个下标值之后的元素,应当直接修改length的值,而不是delete运算.

24.join的一个非常有效的应用是字符串缓存来用,因为Array的join方法构造字符串的整体效率要高于用+运算符连接字符串.

25.如何把函数的参数以数组的追加到原数组中?
function test(){
var a=["this","is"];
return a.concat.apply(a,arguments);
}
alert(test(1,2,3));
#通过以上即可.

26.对象的拷贝如何实现?
function point(x,y){
this.x=x;
this.y=y;
this.clone=function(){
return new point(x,y);
}
}
var p1=new point(1,2);
var p2=p1.clone();

27.对象的内置属性:
constructor
hasOwnProperty
isPrototypeOf()
propertyIsEmuerable()
toLocaleString()
toString()
valueOf()

28.Array的apply方法,Argument对象有同数组类似的行为,但它却不同于javascript核心数组,它不具有数组一睦有用的方法,比如:push(),concat()和slice()等,这时候利用Array函数的apply方法可以很容易的将argument和其他一些带下标的对象转换为数组:
function test(){
var a=["this","is"];
return a.concat.apply(a,arguments);
}
alert(test(1,2,3));
注意:这个arguments这儿只能是数组形式的数组才行,对象是不行的,比如alert(test([1,2]));

29.splice与concat,和concat不同,splice并不将它插入的数组参数展开,也就是说,如果传递给它的是一个数组,它将插入这个数组本身,而不是这个数组的元素.

30.数组的toString()方法,和所有的javascript方法一样,数组也有toString方法,这个方法可以将数组中的每一个元素都转换成字符串,然后用","连接起来,并返回这个连接后的字符串,例如:[1,2,3].toString();

31.json对象的简单使用:
<script>
var ht={};
ht.x=10;
ht.y=11;
delete ht.x;
alert(ht.x);
</script>
#以上是一些添加、删除和使用的例子.

32.javscript中的集合主要分为:数组和json
js为数组提供了强大的集合操作方法论,包括以下这些:
reverse() 颠倒Array
sort() Array排序
concat() Array联合
slice() 得到子Array
splice() 删除和替换Array元素
toString() Array转字符串
你可以用for...in语句来遍历json中的元素,用in操作符检索元素,有delete操作符从集合中删除元素,如果你愿意的话,你也可以自己封装一个拥有更多扩展功能的json对象.

33.利用字符数组快速颠倒字符中:
javascript:"www.baidu.com".split("").reverse().join("");

34.字符串的常用使用方法,包括:
charAt() 获得字符串在指定坐标位置的字符
charCodeAt() 获得字符串在指定坐标位置的unicode编码
concat() 连接字符串
indexOf() 获得指定字符串的坐标
match() 匹配字符串
lastIndexOf() 获得指定字符串的坐标,搜索子串时从后往前检索
replace() 替换子串
search() 按模式查找子串
slice() 得到子串
split() 拆分字符串
substring() 得到子串
substr() 得到子串.

35.正则表达式中用的最多的是字串中的match(),replace(),search(),split(),其中split()方法是能够支持模式匹配的最后一个String方法,我们在前一章中已经见过它用字符串分隔符将调用它的字符串分割为字符数组,而实际上,split()方法也接受正则表达式作为参数,这种能力使该方法更为强大:
<div id="content">
foo bar &
FOO, BAR
end
</div>
<script>
alert(content.innerText.split(/[.\s]/));
</script>
#将div中的text全部字串分隔并放入数组中.

36.字符串和正则表达式:
String方法:
match() 匹配模式
replace() 用模式检索替换子串
search() 用模式检索子串
split() 拆分字符串
RegExp方法:
exec() 用模式检索匹配字符串
test() 用模式检索字符串匹配该模式的子串.

37.打印出window对象的所有属性和方法:
<script>
for(p in window){
document.write(p+"<br>");
}
</script>

38.把网页的图片颠倒:
javascript:for(var i=0;i<document.images.length;i++){
document.images[i].style.filter="FlipV"
};void(0);

39.下面这段代码阻止页面文档被嵌套在任何框架内:
if(self != top){
top.location=self.location;
}

41.表单的使用,第一个表单,document.forms[0],最后一个表单,document.forms[document.forms.length-1].
值得注意的是,form对象只能是顺序出现在document中的,它们不能嵌套,换句话说,<form></form>之间不能再有新表表单出现.

42.form对象最有用的属性是elements[]集合,它包含各种表单输入元素的javascript对象,它们按照出现在form中的先后顺序存放在elements[]集合中.

43.<form οnsubmit="check(this);" action="test.php" method="post"><input type=text><input type=submit></form>这种方式比较好用,表单检验是非常重要的,在提交之前最好在js中进行表单检验,当然在公司中最好是前台js做检验,而在后台php也做一次提交检验,以防入侵,以下是check()函数的具体写照:
fucntion check(form){
for(var i=0;i<form.elements.length;i++){
var element=form.elements[i];
if(/^[\s\n\t\r\n]*$/.test(element.value)){
alert(element.name+"值不能为空!");
element.focus();
return false;
}
}
return true;
}

44.客户端浏览器核心对象:
dialog 对话框
document 文档对象
form 表单
frame 框架
history 历史对象
location 位置对象
screen 屏幕对象
status 状态栏
window 窗口对象

45.全局变量和局部变量:
<script>
var msg="I am a chinese man";
function show(){
var msg="aaaa";
alert(msg);
}
show();
alert(msg);
</script>
#全局变量是作用范围是这个变量定义之后的所有语句,包括后面定义的函数中的程序代码和它后面的其他<script></script>标签对中的程度代码,局部变量是定义在函数代码之内的变量,只有在该函数中有效.

46.toString()方法只在var f1=new f();当一个对象生成时,可以在f()这个函数里用this.toString=function(){}来重构该对象生成那一刻的对象字符串后的结果.
<script>
var f=function(x,y,z){
this.toString=function(){
return "aaaaaaaa";
}
}
var f1=new f();
document.write(f1);
</script>
#所以一旦用到关于该对象的字符串结果,无论是用alert(f1)或者document.write(f1)都可以得到this.toString()后的结果,否则f1是一个对象,会打印出如下:
<script>
var f=function(x,y,z){
this.toString=function(){
return "aaaaaaaa";
}
}
alert(f);
</script>
结果:

47.关于函数参数问题:
<script>
var f=function(x,y,z){
alert(arguments.length);
}
alert(f.length);
</script>
#argumnts.length显示的是arguments实参的数量,而f.length则表示形参的数量(x,y,z都是形参),真正传递给f(1,2,3)的参数为实参,如果实参少于形参则这些参数会变成undefined.

48.关于dom元素对象的调用和兼容性
Function rcopy(){
Var t=documnent.form1.input1.value;
Document.getElementsByTagName(“form”)[0].elements[“input2”].value=t.split(“”).reverse().join(“”);
#在ie里,form元素可以直接通过name来访问,document.getElementsByTagName(“form”)[0].elements[“input2”].value=t.split(“”).reverse().join(“”);,不过考虑到兼容性,不推荐前面那种使用方法,这种是标准的用法,form有elements属性.
}
<form name=”form1”>
<input name=”input1”>
<input name=”input2” readonly>
<button οnclick=”rcopy()”>mirror</button>
<button οnclick=”reset(this)”>reset</button>
</form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值