变量声明时命名与变量作为对象属性时命名的区别解析

这个标题实在拗口,Javascript命名变量所遵循的规则

1、第一个字符必须是字母、汉字字符、 下划线(_)或美元符号($)

2、剩下的可以是下划线、汉字字符、 美元符号和任何字母、数字

以下声明变量是正确的


代码如下:

var p,$p,_p;
var 长,宽;

以下是错误的


代码如下:

var .p;//只能是字母、数字、下划线或美元符号
var -p;//只能是字母、数字、下划线或美元符号
var p*;//只能是字母、数字、下划线或美元符号
var 4p,4长;//不能以数字开头
var 长 度;//中间不能有空格

作为对象属性时,有两种方式存取。一是点号(.)运算符,一是中括号([])运算符。


代码如下:

var p = {name:"Jack"};
alert(p.name);//点号
alert(p['name']);//中括号

1、点号要求后面的运算元是合法的标识符(即合法的变量命名),对于不合法的不可以使用

2、中括号要求的则是一个字符串即可,不必是合法的变量命名。如4p是不合法的变量命名(因为以数字开头),但却可以作为对象属性名(前提是字符串)


代码如下:

var p = {
"4p":"Jack",
"-3":"hello",
name:"Tom",
"我":"me",
"我 们":"we"
};

alert(p.4p);//不合法,语法分析时报错,不能以数字开头
alert(p.我);//合法,输出"me"
alert(p.我 们);//不合法,语法分析时报错("我"和"们"之间有个空格)
alert(p["我 们"]);//合法,输出"we",虽然"我"和"们"之间有空格,仍然可以用[]存取
alert(p['4p']);//合法,输出"Jack"
alert(p.name);//合法,输出"Tom"

用直接量声明一个对象变量时,属性名有时候我们会加引号,有时候则不加,但无论加或不加,对象的属性类型都是string


代码如下:

var book = {bname:"js权威指南","price":108};//bname没加引号,price加了
for(var attr in book) {
     //两次输出都是string,说明js会动态将其转换成字符串类型
     alert( attr + ":" + typeof(attr) );
}

(0)

相关推荐

  • javascript 命名规则 变量命名规则

    JavaScript变量匈牙利命名法 匈牙利命名法语法: 变量名=类型+对象描述 类型指变量的类型 对象描述指对象名字全称或名字的一部分,要求有明确含义,命名要容易记忆容易理解. 提示: 虽然JavaScript变量表面上没有类型,但是JavaScript内部还是会为变量赋予相应的类型. 提示: 匈牙利命名法是一位微软程序员发明的,多数的C,C++程序都使用此命名法. JavaScript变量匈牙利命名类型 JavaScript变量起名类型 变量命名前缀 Array 数组 a Float 浮点

  • JavaScript 变量命名规则

    JScript 是一种区分大小写的语言. 第一个字符必须是一个 ASCII 字母(大小写均可),或一个下划线(_).注意第一个字符不能是数字. 后续的字符必须是字母.数字或下划线. 变量名称一定不能是 保留字. 下面给出合法变量名称的一些示例: _pagecount Part9 Number_Items 下面给出无效变量名称的一些示例: 99Balloons // 不能以数字开头.Smith&Wesson // "与"符号(&)字符用于变量名称是无效的.

  • 你必须知道的JavaScript 变量命名规则详解

    变量命名还应遵守以下某条著名的命名规则: 著名的变量命名规则Camel 标记法首字母是小写的,接下来的字母都以大写字符开头.例如: 复制代码 代码如下: var testValue = 0, secondValue = "hi";Pascal 标记法 首字母是大写的,接下来的字母都以大写字符开头.例如: 复制代码 代码如下: var TestValue = 0, SecondValue = "hi";匈牙利类型标记法 在以 Pascal 标记法命名的变量前附加一个小

  • 变量声明时命名与变量作为对象属性时命名的区别解析

    这个标题实在拗口,Javascript命名变量所遵循的规则 1.第一个字符必须是字母.汉字字符. 下划线(_)或美元符号($) 2.剩下的可以是下划线.汉字字符. 美元符号和任何字母.数字 以下声明变量是正确的 复制代码 代码如下: var p,$p,_p; var 长,宽; 以下是错误的 复制代码 代码如下: var .p;//只能是字母.数字.下划线或美元符号 var -p;//只能是字母.数字.下划线或美元符号 var p*;//只能是字母.数字.下划线或美元符号 var 4p,4长;//

  • 浅析JavaScript访问对象属性和方法及区别

    属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸.跳跃等. 在JavaScript中通常使用"."运算符来存取对象的属性的值.或者使用[]作为一个关联数组来存取对象的属性. 对象的属性和方法统称为对象的成员. 访问对象的属性 在JavaScript中,可以使用" . "和" [ ] "来访问对象的属性. 1. 使用" . "来访问对象属性 语法: objectNam

  • js变量声明var使用与不使用的区别详解

    一.区分显示的声明与隐式声明(var) JS中变量声明分显式声明和隐式声明. var name = 'muzidigbig';//显示声明 name = 'muzidigbig';//隐式声明(为全局变量的一个属性) 在函数中使用var关键字进行显式声明的变量是做为局部变量,在全局范围内声明的变量为全局变量:而没有用var关键字,使用直接赋值方式声明的是全局变量(全局对象属性). // name = 'muzidigbig';//隐式声明(为全局变量的一个属性) console.log(name

  • JavaScript变量声明的var、let、const详解

    目录 前言 内容 JavaScript的变量声明 var的变量声明 变量声明在函数作用域中 变量重复声明 变量声明提升 怪异危险的var let和const的变量声明 块级作用域 不可重复声明 暂时性死区 使用好let和const 总结 参考资料 前言 一个程序语言在运行的过程中,变量的声明在整个程序的生命周期中,是不断在进行的过程.任何程序的计算都会涉及至少一个变量,而计算的结果的则可能会涉及到另外的一个或者多个变量.变量在使用前是要声明,变量声明的过程在计算机的底层,牵涉到的是内存空间和内存

  • Golang语言的多种变量声明方式与使用场景详解

    目录 01介绍 02变量声明方式 标准声明变量 不显式赋初始值声明变量 省略类型声明变量 短变量声明 显式类型转换 变量列表声明 变量声明块 03使用场景 包级变量 全局变量 局部变量 04注意事项: 05总结 01介绍 在程序设计中,编译器必须将代表数据的变量名称替换成该数据所在的内存地址.变量的名称.类型及内存地址通常会维持固定,但该内存地址所存储的数据在程序执行期间则可能会改变. Golang 语言编译器需要先明确变量的内存边界,才可以使用变量.通过声明变量使用的类型,编译器可以明确变量的

  • 实体类或对象序列化时,忽略为空属性的操作

    第一种,在配置文件配置 在application.xml直接配置,这种方式是全局配置,所有返回给前端对象的属性为null或""都不进行序列化: spring: jackson: #实体类转json时字段为null不参与序列化 default-property-inclusion: NON_EMPTY default-property-inclusion 常用的4种类型 ALWAYS 默认 NON_DEFAULT 属性为默认值不序列化 NON_EMPTY 属性为 ""

  • PHP var_dump遍历对象属性的函数与应用代码

    本文章下面我们要为你提供二种关于遍历对象属性方法,并且举例说明遍历对象属性在php中的应用.可以看出私有变量与静态变量时获取不到的,只有定义为公共变量才可以读出来. 遍历对象属性第一种方法: 复制代码 代码如下: <?php class foo { private $a; public $b = 1; public $c; private $d; static $e; public function test() { var_dump(get_object_vars($this)); } } $

  • 浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处

    [JS对象属性的查询和设置] 可以通过点(.) 或 方括号([]) 运算符来获取属性的值.运算符左侧应当是一个表达式,它返回一个对象.对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符.对于方括号([])来说,方括号里必须是一个计算结果为字符串的表达式,这个字符串就是属性的名字: <script type="text/javascript"> var author = book.author; //得到book的"author"属性 var na

  • 基于Java class对象说明、Java 静态变量声明和赋值说明(详解)

    先看下JDK中的说明: java.lang.Object java.lang.Class<T> Instances of the class Class represent classes and interfaces in a running Java application. An enum is a kind of class and an annotation is a kind of interface. Every array also belongs to a class tha

  • JavaScript三大变量声明详析

    目录 前言 Var 基础写法 声明未定义值 声明定义值 不推荐写法 var 声明作用域 局部作用域 全局作用域 便捷语法 var 声明提升 Let let 作用域 冗余声明 暂时性死区 全局声明 条件声明 for 循环中的 let 常见for循环 for循环套定时器 const const 限制 for 循环中的 const 声明风格及最佳实践 总结 前言 ECMAScript 变量是松散类型的,变量可以用于保存任何类型的数据,每个变量只不过是一个用于保存任意值的命名占位符. 本文主要讲述 Ja

随机推荐