详解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中for循序中延迟加载动态效果的具体实现
Aug 18 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
Sep 20 Javascript
基于Jquery代码实现手风琴菜单
Nov 19 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
Vue的事件响应式进度条组件实例详解
Feb 04 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
AngularJS 监听变量变化的实现方法
Oct 09 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
浅谈Vue 函数式组件的使用技巧
Jun 16 Javascript
vue 使用原生组件上传图片的实例
Sep 08 Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 22 Javascript
React中使用Vditor自定义图片详解
Dec 25 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设计模式 Mediator (中介者模式)
2011/06/26 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
在Python程序中实现分布式进程的教程
2015/04/28 Python
python制作一个桌面便签软件
2015/08/09 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
python制作抽奖程序代码详解
2021/01/15 Python
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
Jdbc数据访问技术面试题
2012/03/30 面试题
销售顾问工作计划书
2014/09/15 职场文书
高考升学宴答谢词
2015/01/20 职场文书
北京英语导游词
2015/02/12 职场文书
可可西里观后感
2015/06/08 职场文书
任命书格式模板
2015/09/22 职场文书
MySQL 逻辑备份 into outfile
2022/05/15 MySQL