详解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 相关文章推荐
javascript 兼容鼠标滚轮事件
Apr 07 Javascript
extjs 列表框(multiselect)的动态添加列表项的方法
Jul 31 Javascript
jQuery Autocomplete自动完成插件
Jul 17 Javascript
Jquery性能优化详解
May 15 Javascript
简单实现js浮动框
Dec 13 Javascript
mui上拉加载更多下拉刷新数据的封装过程
Nov 03 Javascript
Vue-Router模式和钩子的用法
Feb 28 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
Sep 26 Javascript
Node.js从字符串生成文件流的实现方法
Aug 18 Javascript
vue-loader中引入模板预处理器的实现
Sep 04 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
Aug 22 Javascript
Vue3.0 手写放大镜效果
Jul 25 Vue.js
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旋转图片90度的方法
2013/11/07 PHP
php截取中文字符串函数实例
2015/02/23 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
python绘制简单折线图代码示例
2017/12/19 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
2018/04/02 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
Python递归函数实例讲解
2019/02/27 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
教师年度考核自我鉴定
2014/01/19 职场文书
初三学生评语大全
2014/04/24 职场文书
土地租赁协议书
2015/01/29 职场文书
留学推荐信中文范文
2015/03/26 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript