码迷,mamicode.com
首页 > 编程语言 > 详细

javascript变量 数组 引用类型

时间:2016-06-29 01:04:46      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

一 全局变量和局部变量
全局变量:(1)在方法外部声明的变量(2)方法内部,没有加var关键字声明的变量
局部变量:方法内部,使用var声明的变量
<script type="text/javascript">
var a=3; //全局变量
function test(){
var a=2; //局部变量
alert(a);
}
test();
</script>
结果:

技术分享

 

如果注释掉var a=2;

<script type="text/javascript">
// var a=3; //全局变量
function test(){
var a=2; //局部变量
alert(a);
}
test();
</script>

结果:

技术分享

若将程序改为:

<script type="text/javascript">
function test(){
c=5; //相当于全局变量
}
alert(c);
test();
</script>

结果为:

 技术分享

c虽然是全局变量,但是要先执行函数test(),才能执行到c。也就是说,javascript是由上而下执行的。
二 数据类型
1.基本数据类型:Number,Boolean,String,Undefined,Null
Number:整数,小数,NAN,Infinity(正无穷),-Infinity(负无穷)
Undefined:表示变量声明但是未赋值
Null:表示一个空的对象引用
例:var a=1/0;并不会报错,会返回Infinity
2.引用类型:Object类(如对象、数组、RegExp、Date...)
3.typeof操作符:用来判断数据类型
var a=10;alert(typeof a);
页面显示的是number
其中,基本类型按值访问,引用类型按引用访问。
三 数组
js数组类似于java容器,长度可变,元素类型也可以不同
<script type="text/javascript">
    var arr=[1,false];
    var result=arr.push(2,true,"abc");
    alert(arr);
    alert(result);
</script>
结果为:
技术分享
技术分享
技术分享
技术分享
其中,push()函数会向数组中添加元素,并会返回新数组的长度
<script type="text/javascript">
    var arr=[1,false,2,"dfr"];
    var obj=arr.pop();
    alert(arr);
    alert(obj);
</script>
结果:
技术分享

技术分享

技术分享
技术分享
其中,pop()函数可以从数组的尾部移除一个元素,并返回移除的元素值
shift()函数从头部移除一个元素,unshift()函数从头部插入多个元素,并返回新数组的长度
<script type="text/javascript">
    var arr=[1,2,4,6,3];
    arr.splice(1, 2,3,4,5);
    alert(arr);
</script>
结果:
技术分享
技术分享
其中,splice()的第一个参数表示起始位置,第二个参数表示截取的个数,第三个参数以后表示要追加的新元素
若是只有两个参数,arr.splice(1,2);结果为
技术分享
技术分享
程序若改为:
<script type="text/javascript">
    var arr=[1,2,4,6,3];
    arr.slice(2,4);
    alert(arr);
</script>
结果:
技术分享
技术分享
slice()函数截取范围:左闭右开区间,不操作数组本身,返回截取的内容,而splice方法会操作数组本身
修改程序:
<script type="text/javascript">
    var arr=[1,2,4,6,3];
    var result=arr.slice(2,4);
    alert(result);
</script>
结果:
技术分享
技术分享
<script type="text/javascript">
    var arr1=[1,2,3];
    var arr2=[2,3,4];
    var result=arr1.concat(arr2);
    alert(result);
</script>
结果:
技术分享
技术分享
同理,concat()合并粘贴,不操作数组本身
<script type="text/javascript">
    var arr1=[1,2,3];
    var result=arr1.join(‘-‘);
    alert(arr1)
    alert(result);
</script>
结果为:
技术分享
技术分享
技术分享
技术分享
join()方法在每个元素之间加入内容,也不操作数组
sort()方法正序排序,reverse()方法倒序排序
四 引用类型
<script type="text/javascript">
    var obj={};
    obj.name=‘张三‘;
    obj.age=20;
    obj.say=function(){
        alert(‘hello world‘);
    }
    alert(obj.name);
    obj.say();
for(var attr in obj){
        alert(attr);
    }
</script>
注意:for循环遍历的是obj的属性,即attr的值为name,age,say
若想遍历值,则改为obj(attr)

javascript变量 数组 引用类型

标签:

原文地址:http://www.cnblogs.com/lyy-2016/p/5625448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!