最新
文章专题
视频专题
问答1
问答10
问答100
问答1000
问答2000
关键字专题1
关键字专题50
关键字专题500
关键字专题1500
TAG最新
视频文章
推荐1
推荐3
推荐5
推荐7
推荐9
推荐11
推荐13
推荐15
推荐17
推荐19
推荐21
推荐23
推荐25
推荐27
推荐29
推荐31
推荐33
推荐35
推荐37
视频文章20
视频文章30
视频文章40
视频文章50
视频文章60
视频文章70
视频文章80
视频文章90
视频文章100
视频文章120
视频文章140
视频2
关键字专题
关键字专题
tag2
tag3
文章专题
文章专题2
文章索引1
文章索引2
文章索引3
文章索引4
文章索引5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
文章专题3
科技
教育
生活
旅游
时尚
美容
美食
健康
体育
游戏
汽车
元宇宙
家电
财经
百科
科技
首页
业界
互联网
手机
AI
VR
电商
苹果
安卓
6G
5G
数码
测评
学院
鸿蒙
软件
电脑
知识百科
专题
点击下载
本文文档
当前位置:
首页
-
科技
-
知识百科
-
正文
JavaScript中级笔记第二章_javascript技巧
来源:动视网
责编:小采
时间:2020-11-27 20:44:20
JavaScript中级笔记第二章_javascript技巧
JavaScript中级笔记第二章_javascript技巧:1,引用 引用是一个指向对象实际位置的指针。看下面的使用引用的例子: /*示例引用*/ var obj = new Object(); //定义一个空对象 var newObj = obj; //定义一个新对象引用。 obj.name = rain;//修改原对象的属性 alert( newObj
推荐度:
点击下载本文
文档为doc格式
导读
JavaScript中级笔记第二章_javascript技巧:1,引用 引用是一个指向对象实际位置的指针。看下面的使用引用的例子: /*示例引用*/ var obj = new Object(); //定义一个空对象 var newObj = obj; //定义一个新对象引用。 obj.name = rain;//修改原对象的属性 alert( newObj
1,引用
引用是一个指向对象实际位置的指针。看下面的使用引用的例子:
/*示例引用*/ var obj = new Object(); //定义一个空对象 var newObj = obj; //定义一个新对象引用。 obj.name = "rain";//修改原对象的属性 alert( newObj.name ); alert( obj.name == newObj.name );//由此可以证明它们是引用的同一个对象 script>
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
本例中,两个对象都指向同一个对象,当修改某一个对象的属性内容时,则会影响另一个。
我们再来看一个例子,这次我们利用数组来讲解引用:
/*示例引用*/ var arr = new Array("a","b","c"); //定义一个数组 var newArr = arr; //定义一个新数组的引用。 arr.push("d");//添加一个值 alert( newArr[3] ); alert( arr.length == newArr.length );//由此可以证明它们是引用的同一个数组对象 script>
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
如果在arr被重新定义后,则引用就不是同一个对象了,如下代码所示:
/*示例引用*/ var arr = new Array("a","b","c"); //定义一个数组 var newArr = arr; //定义一个新数组的引用。 arr = new Array("e","f"); //重新定义一个数组 //newArr和arr现在指向不同的对象了 //arr指向的是new Array("e","f"); //newArr指向的是 new Array("a","b","c"); alert(arr!=newArr); script>
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
接下来我们来看一个比较特殊点的例子,关于字符串的引用问题。
/*示例引用*/ var str = "a"; var newStr = str; str = str + "b";//修改str的值,注意,这将会创建一个新对象,而非修改原对象 alert(str!=newStr); script>
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
正如本例所示,在执行字符串操作时,结果总会是一个新的字符串对象,而非字符串的修改版。
不知道大家看过<
>书中的有一节讲的是 传值和传址,说白了,就是引用。有兴趣可以去看看。
JavaScript就是一门通过维护一系列对其它对象的引用的语言,通过引用,可以给程序带来极大的灵活性。
2,函数重载
函数重载的特性就是根据传入的不同数量或类型的参数,通过重载函数来发挥不同的功能。它必须依赖2件事情:一是判断传入参数的数量 ,二是判断传入参数的类型。
2-1,判断传入参数的数量
JavaScript的每个函数都带有一个仅在这个函数范围内作用的变量称为参数,它是一个包含所有传给函数的参数的伪数组,虽然有length属性。
通过arguments,我们能够获取到这个伪数组。如下所示:
//定义一个发送信息的简单函数 //obj为发送的对象,msg为发送的信息 function sendMsg( obj , msg ){ if(arguments.length==2){ alert(obj + " 发送:" + msg); }else{ alert("参数数量不对,不能发送"); } } //仅用一个参数时 sendMsg("hello"); //用2个参数时 sendMsg("","hello"); script>
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
arguments是一个非常有用的东西,在看下面的一个功能函数,它能将任意数量的参数转换为数组。
function makeArr(){ var arr = [];//定义一个临时数组 for(var i=0;i
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
2-2,判断传入参数的类型
第一种判断类型的方式:
判断类型需要用到JavaScript中另一个操作符——typeof。 它用来表达变量内容的类型,返回的是字符串。比如如果一个变量是字符串,那么typeof后,则返回( "string" )。
经常我们会用到如下判断:
代码如下:
if( typeof num == "string" ){
num = parseInt( num );//如果是一个字符串,则把字符串解析出整数
}
if( typeof arr== "string" ){
arr= arr.split(",");//如果是一个字符串,则根据逗号来分割成数组
}
例如把前面的makeArr()函数改成只能接受字符串类型的参数,代码如下:
function makeArr(){ var arr = [];//定义一个临时数组 for(var i=0;i
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
最终结果 a.length 为2,因为后面2个参数是number 类型。
第二种判断类型的方式:
此方法需要引用所有JavaScript对象都带有的一个属性,构造函数——constructor。这一属性引用的是原本用来构造该对象的那个函数。
代码如下:
if( num.constructor == String ){
num = parseInt( num );//如果是一个字符串,则把字符串解析出整数
}
if( arr.constructor == String ){
arr= arr.split(",");//如果是一个字符串,则根据逗号来分割成数组
}
if( newArr.constructor == Array ){
newArr = newArr.join(",");//如果是一个数组,则根据逗号来组成字符串
}
执行constructor后的结果是一个
对象
,而执行typeof后的结果是一个
字符串
。看下表的对比:
变量
typeof 变量
变量.constructor
{a:"b"}
"object"
Object
["a","b"]
"object"
Array
function(){}
"function"
Function
"a"
"string"
String
66
"number"
Number
true
"boolean"
Boolean
new User()
"object"
User
通过对传入参数的数量和类型的判断,那么函数重载也就简单了。
JavaScript中级笔记第二章_javascript技巧
JavaScript中级笔记第二章_javascript技巧:1,引用 引用是一个指向对象实际位置的指针。看下面的使用引用的例子: /*示例引用*/ var obj = new Object(); //定义一个空对象 var newObj = obj; //定义一个新对象引用。 obj.name = rain;//修改原对象的属性 alert( newObj
推荐度:
点击下载本文
文档为doc格式
标签:
技巧
第二章
js
热门焦点
最新推荐
猜你喜欢
热门推荐
专题
Top