javascript变量
5种简单数据类型(基本数据类型)
undefined null boolean number string (还有一种复杂的数据类型:object)
变量的两种不同的数据类型:基本类型(简单数据段)、引用类型(可能由多个值构成对象)
1、基本类型
var num1 = 5;
var num2 = num1;
num1与num2完全独立,不会相互影响
2、引用类型——按引用访问、保存在内存中的对象(js不允许直接访问内存)
var person1 = new object();
var person2 = person1;
person1和person2实际引用一个对象,互相影响
访问变量有按值和按引用两种方式,而参数只能按值传递
function addTen(num){
num+=10;
return num;
}
var count = 20;
var result = addTen(count);
alert(count); //
alert(result); //
在函数内部重写obj时,变量引用的局部对象,函数执行完立即销毁
function setName(obj){
obj.name = "Ni";
obj = new Object();
obj.name = "Ge";
}
var person = new Object();
setName(person);
alert(person.name); //"Ni"
typeof和instanceof
typeof操作符返回数据类型(返回字符串):undefined,boolean,string,number,object,function
var s = "Ni";
var b = true;
var i = 22;
var u = null;
var o = new Object();
var n;
var person = new Object();
typeof s //string
typeof b //boolean
typeof i //number
typeof u //object
typeof o //object
typeof n //undefined
person instanceof Object //true
pattern instanceof RegExp //true
执行环境及作用域
1、全局执行环境: window对象
全局执行环境的变量对象始终都是作用链域中的最后一个对象
2、执行环境: 每个函数都有自己的执行环境,执行环境定义了变量或函数有权访问的其他数据
3、作用域链的用途:代码在一个环境中执行时,创建对象的一个作用域链,保证有序
var color = "blue";
function changeColor(){
if(color == "blue"){
color = "red";
}else{
color = ""blue;
}
}
函数changeColor()的作用域链包含两个对象:自己的变量对象arguments,全局环境变量对象color
var color = "blue";
function changeColor(){
var anotherColor = "red";
function swapColors(){
var tempColor = anotherColor;
anotherColor = color;
color = tempColor;
//这里可以访问color,anotherColor,tempColor
} //这里可以访问color,anotherColor
}//这里可以访问color
4、没有块级作用域
由if,for语句创建的变量i即使在for循环结束后,也依旧存在于循环外部的执行环境中
5、var声明的是局部变量,不加var是全局变量。如果局部环境中存在同名标识符,就不会使用位于父环境中的标识符
javascript变量的更多相关文章
- javascript变量的作用域
javascript变量的作用域 基本类型和引用类型 基本类型值指的是简单的数据段,而引用类型值指的是那个可能由多个值组成的对象 讲一个值赋值给变量时,javascript解析器首先要确定是基本类型 ...
- JavaScript 变量声明提前
<JavaScript权威指南>中指出:JavaScript变量在声明之前已经可用,JavaScript的这个特性被非正式的称为声明提前(hoisting),即JavaScript函数中声 ...
- JavaScript 变量
一,JavaScript 变量(存储信息的容器) 与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比如 z=x+y). 变量可以使用短名称(比如 x 和 y),也可以使用描 ...
- javascript变量声明 及作用域
javascript变量声明提升(hoisting) http://openwares.net/js/javascript_declaration_hoisting.html 可能要FQ一下 java ...
- JavaScript 变量作用域
一. 变量声明 变量用var关键字来声明,如下所示: 变量在未声明的情况下被初始化,会被添加到全局环境. JavaScript执行代码时,会创建一个上下文执行环境,全局环境是最外围的环境.每个函数在被 ...
- 【转】javascript变量声明 及作用域
javascript变量声明提升(hoisting) javascript的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明都提升到当前作用域的最前面. 先看 ...
- JavaScript变量和数据类型
变量 变量就是一个元素,类似于数学中的概念,用来指定表示一个对象.在JavaScript中,用来指定变量的关键字为var.当声明新变量时,可以使用关键词 "new" 来声明其类型 ...
- 回归基础: JavaScript 变量提升
from me: javascript的变量声明具有hoisting机制,它是JavaScript一个基础的知识点,也是一个比较容易犯错的点,平时在开发中,大大小小的项目都会遇到. 它是JavaScr ...
- JavaScript - 变量,作用域,内存
JavaScript 变量可以用来保存两种类型的值:基本类型值和应用类型值.基本类型的值源自以下5种基本数据类型:Undefined.Null.Bollean.Number和String. 所有变量都 ...
- 六天玩转javascript:javascript变量与表达式(2)
本系列内容为本人平时项目实践和参照MDN,MSDN,<javascript语言精粹>,<Effective Javascript>等资料,并且整理自己EverNote的日常积累 ...
随机推荐
- Funambol Developer's Guide 中 connector development样例的问题
今天学习Funambol的connector开发,官方文档中的样例有问题. 首先,文档中提供的maven命令不可用: mvn archetype:generate -DarchetypeGroupId ...
- MySQL和PostgreSQL 导入数据对照
在虚拟机上測评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 由于是虚拟机上的測评,所以时间仅仅做參考,不要太较真, 看看就好了.MySQL 工具: 1. 自带 ...
- iOS开发——开发技巧&Git常用命令
Git常用命令 初始化git init 加—bare实现远程仓库 配置git config user.name iCocos 配置全局git config —global user.na ...
- C 栈顺序存储
// seqstack.h #ifndef _MY_SEQSTACK_H_ #define _MY_SEQSTACK_H_ typedef void SeqStack; SeqStack* SeqSt ...
- JavaScript网站设计实践(六)编写live.html页面 改进表格显示
一.编写live.html页面,1.JavaScript实现表格的隔行换色,并且当鼠标移过时当前行高亮显示:2.是输出表格中的abbr标签的内容 实现后的效果图是这样的: 1.实现思路 在输出表格的时 ...
- Java设计模式08:框架基础知识
1. 框架是什么 ? 框架是能完成一定功能的半成品软件.(不能直接使用,还需要再加工,所以叫半成品.比如:方便面) 2. 框架能干什么 ? (1)能完成一定的功能,加快程序开发进度. (2)给我们一个 ...
- 零门槛!ZBLibrary仿微信朋友圈自定义View,就是这么简单!
传统方法是继承现有View再重写方法,这种方式缺点很多: 1.往往不能在xml编辑器中预览效果: 2.比较难实现预期效果,比如设置宽度为wrap_content,实际显示为match_parent等: ...
- Logstash add_field 参数应用
使用 add_field 参数有两种需求: 1. 直接加入到 event 的 hash 顶级对象中 add_field => { "my_field_one" => & ...
- 关于python使用list出现乱码的解决
昨天在敲python的一个小实例的时候,用到了readlines()这个函数,但是将文件读出来的时候是乱码,也并不是完全乱码,只是中文出现了乱码,数字还是显示正常的,同时也不报错.源码以及文件截图如下 ...
- PHP 点滴疑惑
在数据库中,字段为NULL,可以使用empty()进行判断 <?php $CONFIG['hostname'] = 'localhost'; $CONFIG['username'] = 'roo ...