详解javascript的变量与标识符


Posted in Javascript onJanuary 04, 2016

一、变量

从字面上看,变量是可变的量;从编程角度讲,变量是用于存储数据的容器

详解javascript的变量与标识符

1.1变量特性

javascript中的变量是松散类型的,可以保存任何类型的数据。由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变 

1.2变量命名

变量可以任意取名,但必须遵循命名规则:

[1]第一个字符必须是字母、下划线或美元符号。其他字符可以是字母、下划线、美元符号或数字

//错误示范
 6num //开头不能用数字
 %sum //开头不能用除(_ $)外特殊符号,如(% + /等)
 sum+num //开头中间不能使用除(_ $)外特殊符号,如(% + /等)

[2]字符中的字母可以包括拓展的ASCII或Unicode字母字符,也可以使用中文

[3]不能使用关键字、保留字、true、false和null

[4]变量对大小写敏感

[5]标识符应采用小驼峰格式,第一位应该是数据的类型,常见的标识如下:

数组

    a    Array

   aItems
布尔值   

    b    Boolean

  bIsComplete
浮点数   

    f

Float

    fPrice
函数

   fn    Function

fnHandler
整数

    i

Integer

iItemCount
对象

   o

Object

  oDIv1
正则表达式       re    RegExp

  reEmailCheck
字符串

      s

String

  sUserName
变量

    v

Variant

vAnything     

1.3变量声明
声明格式为: var 变量名;

var num;//声明一个变量
var num1,num2;//声明多个变量

用var操作符定义的变量将成为定义该变量的作用域中的局部变量。若省略var操作符,可以创建一个全局变量,但在严格模式下会抛出 ReferenceError错误

var num1=1;
num2=2;//在严格模式下会报错
num3;//报错

如果重新声明 JavaScript 变量,该变量的值不会丢失

var carname="Volvo";
console.log(carname);//Volvo
var carname;
console.log(carname);//Volvo

1.4声明提升

javascript中的变量声明会提升到所有函数和语句之前,但提升后的变量将返回undefined,因为只是声明提升,赋值操作并没有提升

console.log(myvar); // undefined
var myvar = "local value";
console.log(myvar); // "local value"

1.5变量赋值

使用"="给变量赋值,也就是存储内容。变量可以在声明时赋值,但不能有其他操作,如+=、-=等

var num = 5;
//上下是等价的
var num;
num = 5;
var a = 2;//正确
var a += 2;//错误
var a = 2++;//错误,++只能用于变量,不能用于常量

二、标识符

标识符是指变量、函数、属性的名字,或者函数的参数 

2.1标识符命名

命名规则同变量命名规则,对于不符合命名规则的属性如border-color应写为大括号方式[borderColor] 

2.2标识符解析

标识符解析是沿着作用域链一级一级地搜索标识符的过程。搜索过程始终从作用域链的前端开始,然后逐级地向后回溯,直到找到标识符为止。

[1]如果局部环境中存在着同名标识符,就不会使用父环境中的标识符

[2]如果找不到标识符,表示标识符尚未声明,通常会导致错误发生

[3]JavaScript引擎在优化标识符查询方面做得不错,访问父环境和局部环境的标识符的时间差别可以忽略不计

var num = 1;
function test(){
 num = 2;
 console.log(num);//2
 console.log(number);//报错
}
test();

以上就是关于javascript的变量与标识符的相关内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
刷新时清空文本框内容的js代码
Apr 23 Javascript
javascript优先加载笔记代码
Sep 30 Javascript
引用其它js时如何同时处理多个window.onload事件
Sep 02 Javascript
javascript的document中的动态添加标签实现方法
Oct 24 Javascript
jquery延迟对象解析
Oct 26 Javascript
javascript实现鼠标点击页面 移动DIV
Dec 02 Javascript
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
利用vue + element实现表格分页和前端搜索的方法
Dec 25 Javascript
Array数组对象中的forEach、map、filter及reduce详析
Aug 02 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
微信小程序多列表渲染数据开关互不影响的实现
Jun 05 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 #Javascript
基于javascript实现窗口抖动效果
Jan 03 #Javascript
理解jquery事件冒泡
Jan 03 #Javascript
实例讲解避免javascript冲突的方法
Jan 03 #Javascript
详解js中class的多种函数封装方法
Jan 03 #Javascript
js中利用tagname和id获取元素的方法
Jan 03 #Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
Jan 03 #Javascript
You might like
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
Vue实现购物车功能
2017/04/27 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
TensorFlow实现Logistic回归
2018/09/07 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
植物选择:Botanic Choice
2017/02/15 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
Linux面试题LINUX系统类
2015/11/25 面试题
科室工作的个人自我评价
2013/10/30 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
课外活动总结
2015/02/04 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS