详解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 相关文章推荐
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 Javascript
JS数字抽奖游戏实现方法
May 04 Javascript
javascript实现仿腾讯游戏选择
May 14 Javascript
Java Mybatis框架入门基础教程
Sep 21 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
Mar 13 Javascript
jQuery插件扩展extend的简单实现原理
Jun 24 Javascript
ionic组件ion-tabs选项卡切换效果实例
Aug 27 Javascript
js中开关变量使用实例
Feb 24 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
Apr 19 jQuery
JS与SQL方式随机生成高强度密码示例
Dec 29 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
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
python里glob模块知识点总结
2021/01/05 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
Europcar比利时:租车
2019/08/26 全球购物
《我的信念》教学反思
2014/02/15 职场文书
会走路的树教学反思
2014/02/20 职场文书
新年寄语大全
2014/04/12 职场文书
质量月活动总结
2014/08/26 职场文书
公司搬迁通知
2015/04/20 职场文书
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
基于Python实现nc批量转tif格式
2022/08/14 Python