javascript变量和对象要注意的点

js对象和变量,对象本身是没有名称的,之所以使用变量是为了通过某个名称来称呼这样一种不具名称的对象。
变量分基本变量和引用类型变量。
将基本类型的的值付给变量的话,变量将这个值本身保存起来。

 1 <script type="text/javascript">
 2 function p(){
 3     var len=arguments.length;
 4     for(var i=0;i<len;i++){
 5         document.write(arguments[i]+"<br/>");
 6     }
 7 }
 8 var a=123;
 9 var b=a;  //b把123保存起来,之后b与a没有关系了,操作b不影响a了
10 b++;
11 p(a,b);//123,124
12 //将一个对象赋值给一个变量,其实是把对象的引用赋值给了变量,对象本身是无法赋值给一个变量的
13 var a={x:1,y:2}; //a里存的是对象的引用
14 b=a;  //b里存的是变量的引用 或者说地址,而不是变量本身,这时a,b里存的是同一个引用地址,b的操作影响对象
15 b.x++;
16 p(a.x,b.x);//2,2
17 //再比如
18 var a={x:1,y:2};
19 var b=a;
20 var a={x:2,y:3};
21 p(b.x);//1
22 </script>
23 //对于交换变量值得函数,可以用javascript1.7里 增强功能
24 <script type="application/javascript;version=1.7">
25 function swap(a,b){
26     return [b,a];
27 }
28 var x=4,y=3;
29 [x,y]=swap[y,x];
30 p(x,y)//3,4
31 </script>
 1 //变量的查找
 2 //试图读取没有声明的变量,会引起referenceError异常
 3  <script>
 4  var a=a||7; //利用对已经声明的变量再次声明不会产生副作用的特性
 5  //也可以
 6  if(typeof a!==‘undefined‘){
 7      var b=a;
 8  }else{
 9      var b=7;
10  }
11  //判断a是否声明(不管赋值与否)
12  if(‘a‘ in this){
13      var b=a;
14  }else{
15      b=7;
16 }
17 //然后可以放心用b了
18  </script>

变量和属性的实质上是一样的,不过如果变量和属性本身不存在,在处理方式上有所不同

<script>
 p(x);//ReferenceError x is not undefined
 p(this.x);// undefined    访问不存在的属性并不会引起错误
var obj={};
p(obj.x);//undefined
p(obj.x.y) //typeError
//一般使用
obj.x&&obj.x.y
 </script>
// js不支持函数默认参数在调用函数时不检查实参和形参个数,不一致也不报//任何错误
 //可以模拟默认参数
 <script>
 function a(pos){
     pos=pos||{x:1,y:2};
     return pos.x+pos.y;

 }
 </script>
时间: 2024-11-10 01:21:02

javascript变量和对象要注意的点的相关文章

说说javascript变量类型和变量类型检测

javascript是一种弱类型语言,它的典型例子就是即变量在使用的时候可以给它赋值任何类型.那么先来看下javascript都有那些变量类型已经它们的使用方法吧. 先来看看javascript都有那些类型吧: string --- 字符串number --- 数值boolean --- 布尔值undefined --- 未申明的变量 或 申明并未赋值null --- 空object  --- 对象function  --- 函数 这里比较有争议的是 function 类型到底要不要归属到变量类

由浅入深JavaScript——变量和原始类型

JavaScript变量 JavaScript变量标识符标识符 var + 变量名称来定义变量.变量名称以字母,下划线_,美元$符号开头,余下字符可以是字母,数字,下划线,美元符号.eg: var  name = 'hello';     var  a1 = 'hello';    var  _test = 'hello';    var  $test = 'hello';    以上变量名称均为正确.    var  1a = 'hello'; //数字开头错误.    JavaScript允

JavaScript简介——添加到(X)HTMl文档及Javascript变量

1.JavaScript是一种专门设计用来给网页增加交互性的编程语言,其代码通常嵌入在网页中. JavaScript是一种解释型语言,不需要预先编译就可以执行 JavaScript是一种专门用来对网页进行编程的脚本语言. 2.JavaScript的作用: (1)全面控制HTML网页中的所有元素 (2)可以在HTMl网页中加入动态文本 (3)响应用户在使用网页时产生的事件 (4)用于校验用户输入的数据 (5)检测访问者的浏览器 (6)用于创建cookies 3.JavaScript技术体系包含的内

Javascript学习------FileSystemObjec对象

动态创建FileSystemObject对象: var fso=new FileSystemObject("Scripting.FileSystemObject"); (接下来可以用变量fso对Drive对象.Drives集合.File对象.Files集合.Folder对象.Folders集合以及TextStream对象进行相应的操作.) FileSystemObject对象的方法 ·GetAbsolutePathName()方法:该方法根据提供的路径返回完整的路径. ·GetBase

2015第35周五JavaScript变量

java语言里有一句很经典的话:在java的世界里,一切皆是对象. Javascript虽然跟java没有半点毛关系,但是很多会使用javascript的朋友同样认为:在javascript的世界里,一切也皆是对象. 其实javascript语言和java语言一样变量是分为两种类型:基本数据类型和引用类型. 基本类型是指:Undefined.Null.Boolean.Number和String:而引用类型是指多个指构成的对象,所以javascript的对象指的是引用类型.在java里能说一切是对

第一天:javascript变量与表达式(2)

本系列内容为本人平时项目实践和参照MDN,MSDN,<javascript语言精粹>,<Effective Javascript>等资料,并且整理自己EverNote的日常积累整理所写,时间太长有一些代码样例来源不可考.本系列不允许任何形式的转载,谢谢. from yeanzhi 大纲 第一天:javascript变量,操作符与变量作用域 第二天:javascript函数 第三天:对象与原型 第四天:再谈函数与继承 第五天:内置对象 第六天:特殊性质与技巧 第一天:javascri

(转)JavaScript中判断对象类型的种种方法

我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在). 但 type

JavaScript基础_04对象与函数

1 变量作用域和作用域链 作用域:指的是变量和函数的访问范围,也就是说作用域控制着变量的可见性和生命周期,包括局部作用那个与和全局作用域: 局部作用域:指的是一般只在固定代码片内可以访问的作用域,常见的在函数内部定义的变量或函数: 全局作用域:指的是在代码任何地方都可以访问的变量或对象. 例如在下面函数中,alert(a1)首先在fun2函数区域寻找有定义的a1变量,如果有,就使用fun2函数中定义的变量a1,如果没找到,就继续一层一层向父级函数找,在fun1中找到了,就使用fun1中定义的变量

JavaScript 变量类型 保存内存中的位置 和 引用

1. JavaScript变量 基本类型值在内存中占据固定大小的空间 因此被保存在栈内存中. 从一个变量向另一个变量复制基本来下的值 会创建这个值得一个副本. 引用类型的值是对象 保存在堆内存中. 包含引用类型值得变量实际上包含的并不是对象本身 而是一个指向该对象的指针. 从一个变量向另一个变量复制引用类型的值 复制的其实是指针 因此两个变量最终都指向同一个对象 2. 堆和栈 堆栈在数据结构里面的含义就是一组数据的存放方式 后进先出 push: 在最顶层加入数据 pop: 返回并移除最顶层的数据