详解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 相关文章推荐
可插入图片的TEXT文本框
Dec 27 Javascript
javascript去除空格方法小结
May 21 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
Dec 08 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
Jun 13 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
php 修改密码实现代码
May 24 Javascript
js实现数组和对象的深浅拷贝
Sep 30 Javascript
vue项目中用cdn优化的方法
Jan 03 Javascript
Angular5集成eventbus的示例代码
Jul 19 Javascript
Vue-component全局注册实例
Sep 06 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
Oct 24 Javascript
vue 解决computed修改data数据的问题
Nov 06 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开发中AJAX技术的简单应用
2015/12/11 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
关于文本限制字数的js代码
2007/04/02 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
python获取图片颜色信息的方法
2015/03/18 Python
python之pandas用法大全
2018/03/13 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
python基于递归解决背包问题详解
2019/07/03 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
室内设计专业毕业生求职信
2014/05/02 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
python3实现常见的排序算法(示例代码)
2021/07/04 Python
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android