详解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获取农历日期具体实例
Nov 14 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
Jun 10 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
Oct 31 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
vue中如何实现变量和字符串拼接
Jun 19 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
Jul 07 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
微信小程序与webview交互实现支付功能
Jun 07 Javascript
解决layer 动态加载select 失效的问题
Sep 18 Javascript
JavaScript自定义超时API代码实例
Apr 30 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
python基础教程之序列详解
2014/08/29 Python
python执行使用shell命令方法分享
2017/11/08 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
毕业生求职推荐信
2013/11/04 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
工作岗位说明书模板
2014/05/09 职场文书
个人职业及收入证明
2014/10/13 职场文书
授权委托书协议书
2014/10/16 职场文书
公司授权委托书
2014/10/17 职场文书
招商引资工作汇报
2014/10/28 职场文书
烟台的海导游词
2015/02/02 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS