变量声明时命名与变量作为对象属性时命名区别
这个标题实在拗口,Javascript命名变量所遵循的规则
1、第一个字符必须是字母、汉字字符、 下划线(_)或美元符号($)
2、剩下的可以是下划线、汉字字符、 美元符号和任何字母、数字
以下声明变量是正确的
1 2 | var p,$p,_p; var 长,宽; |
以下是错误的
1 2 3 4 5 | var .p; //只能是字母、数字、下划线或美元符号 var -p; //只能是字母、数字、下划线或美元符号 var p*; //只能是字母、数字、下划线或美元符号 var 4p,4长; //不能以数字开头 var 长 度; //中间不能有空格 |
作为对象属性时,有两种方式存取。一是点号(.)运算符,一是中括号([])运算符。
1 2 3 | var p = {name: "Jack" }; alert(p.name); //点号 alert(p[ 'name' ]); //中括号 |
1、点号要求后面的运算元是合法的标识符(即合法的变量命名),对于不合法的不可以使用
2、中括号要求的则是一个字符串即可,不必是合法的变量命名。如4p是不合法的变量命名(因为以数字开头),但却可以作为对象属性名(前提是字符串)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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
1 2 3 4 5 | var book = {bname: "js权威指南" , "price" :108}; //bname没加引号,price加了 for ( var attr in book) { //两次输出都是string,说明js会动态将其转换成字符串类型 alert( attr + ":" + typeof (attr) ); } |
相关:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器