JS声明对象时属性名加引号与不加引号的问题及解决方法

一般情况下属性名加引号和不加引号是都可以的,效果是一样的。

var obj = {
  name  : '你好',
  'age'  : 1,
};
document.write( obj['name'] + '<br />' );
document.write( obj.age); 

上面两行代码均可以正确执行。

当且仅当你的属性名是非法怪异的名字时候,会报错。

var obj = {
  333 : '这个会报错'
};
document.write( obj.333); 

此时报错。

var obj = {
  “333”: '这个也会报错'
};
document.write( obj.333); 

如果属性名是数字,则必须有双引号,并且用[] 方括号访问。

var obj = {
  "333": '这个正确'
};
console.log(obj["333"]);

结论:使用合法属性名,使用 . 和 [] 访问都可以;

如果属性名是数字,则必须用“”包围,并且用 [] 方括号访问。

总结

以上所述是小编给大家介绍的JS声明对象时属性名加引号与不加引号的问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

您可能感兴趣的文章:

  • js addDqmForPP给标签内属性值加上双引号的函数
  • json属性名为什么要双引号(个人猜测)
  • 使用JavaScript正则表达式如何去掉双引号
  • PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
  • JavaScript通过元素索引号删除数组中对应元素的方法
  • PHP处理JSON字符串key缺少双引号的解决方法
  • JSON中双引号的轮回使用过程中一定要小心
(0)

相关推荐

  • JSON中双引号的轮回使用过程中一定要小心

    1. 如果JSON对象中有属性是包含双引号的,比如 复制代码 代码如下: { "description": "25"" } 如果转换成字符串形式,将自动加上反斜线,变为"25\"", 然后传递给REST API,保存到MongoDB中. 此时如果使用MongoDB的shell显示该数据,为"25\"", 正确. 2. 但是如果用C++ driver读取这个值是,则得到"25"&

  • json属性名为什么要双引号(个人猜测)

    原因一: 更加规范,利于解析 原因二: 避免class等关键字引起的不兼容问题 原因三: 可能也是最隐晦的: var a = 00; var b = {00: 12}; a in b; --> true var a = 0; var b = {'00': 12}; a in b; --> false 个人猜测如果js对象的属性名为非string类型,会先进行类型转换, 但是这个过程中可能会出现非预期性的值,虽然仅属个例,但养成一个好习惯还是很有必要的

  • PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠

    通过AJAX传到PHP的json字符串有时候加上反斜杠"\"来转义,PHP处理时需要先去掉反斜杠,然后再json_decode. $str = stripslashes($_POST['json']); $arr = json_decode($str,true); PS:php get抓取json怎样去除双引号前面的反斜杠 你这个不算标准的JSON格式数据,可以先将\"替换成"即可. 再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个

  • JavaScript通过元素索引号删除数组中对应元素的方法

    本文实例讲述了JavaScript通过元素索引号删除数组中对应元素的方法.分享给大家供大家参考.具体分析如下: JavaScript通过元素的索引号删除数组中的元素,如果要删除第3个元素,则使用RemoveValByIndex(2)即可,JS数组从0开始 function RemoveValByIndex(arr, index) { arr.splice(index, 1); } test = new Array(); test[0] = 'Apple'; test[1] = 'Ball'; t

  • js addDqmForPP给标签内属性值加上双引号的函数

    实现代码一: 给标签内属性值加上双引号 var addDqmForPP = function(shtml){ return shtml.replace(/( [^\=]*\=)(\s?[^\"\s\>]*)/ig,function(a,b,c,d,e){return (c)?(new RegExp("<[^>]*"+c.replace(/(\^|\(|\)|\[|\]|\{|\}|\?|\-|\\|\/|\||\$)/g,'\\$1')+"[^&g

  • 使用JavaScript正则表达式如何去掉双引号

    最近接了一个项目,项目需求需要用js正则表达式过滤掉页面文本域中值得双引号,其实解决办法很简单,下面把我写的代码分享给大家,有同样需求的朋友可以参考下. 具体的解决代码如下: <html> <script language="javascript"> //var pattern = /[^"]*/; //校验字符串中是否都是非双引号的字符 var pattern = /["]+/; //校验字符串中是否有双引号的字符 //var patter

  • PHP处理JSON字符串key缺少双引号的解决方法

    本文实例讲述了PHP处理JSON字符串key缺少引号的解决方法,分享给大家供大家参考之用.具体方法如下: 通常来说,JSON字符串是key:value形式的字符串,正常key是由双引号括起来的. 例如: <?php $data = array('name'=>'fdipzone'); echo json_encode($data); // {"name":"fdipzone"} print_r(json_decode(json_encode($data)

  • JS声明对象时属性名加引号与不加引号的问题及解决方法

    一般情况下属性名加引号和不加引号是都可以的,效果是一样的. var obj = { name : '你好', 'age' : 1, }; document.write( obj['name'] + '<br />' ); document.write( obj.age); 上面两行代码均可以正确执行. 当且仅当你的属性名是非法怪异的名字时候,会报错. var obj = { 333 : '这个会报错' }; document.write( obj.333); 此时报错. var obj = {

  • 遍历js中对象的属性和值的实例

    今天优化项目时,遇到了关于"遍历js中对象的属性和值"的需求.之所以会有这个需求,是因为要做一个局部刷新表格内容的js插件.刚开始我去网上荡了一个js分页插件,但是智商实在捉急,搞了半天没搞出来!后来就怒了,干脆自己写一个好了.结果就遇到了这个问题! 问题:通过遍历属性名数组,获取对象的属性值失败 刚开始的错误代码如下: for(var i=0;i<dataList.length;i++) { var dataLine="<tr>"; for(va

  • MyBatis查询时属性名和字段名不一致问题的解决方法

    问题 当我们数据库中的字段和实体类中的字段不一致的时候,查询会出问题 数据库字段是 pwd id name pwd 1 张三 123456 2 李四 123456 3 王五 123456 4 赵六 123456 实体类字段是 password public class User { private int id; private String name; private String password; } 查出来结果发现, password 是 null User{id=1, name='张三

  • 修改计算机名或IP后Oracle10g服务无法启动的解决方法

    遇到的问题,问题产生原因不详.症状为,windows服务中有一项oracle服务启动不了,报出如下错误. Windows 不能在 本地计算机 启动 OracleDBConsoleorcl .有关更多信息,查阅系统事件日志.如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 2 后从网上寻得一贴,问题解决,解决原因不详,反正就是解决了. 问题描述:学校机房母盘安装Oracle10g传输到其它机器,母盘的Oracle可以正常使用,而其它机器启动Oracle服务时无法启动.

  • Bootstrap Table表格一直加载(load)不了数据的快速解决方法

    bootstrap-table是一个基于Bootstrap风格的强大的表格插件神器,官网:http://bootstrap-table.wenzhixin.net.cn/zh-cn/ 这里列出遇到的一个小问题:Bootstrap Table表格一直加载不了数据. $("#button").click(function(){ var name=$("input[name='name']").val(); $('#table').bootstrapTable('load

  • 判断jQuery是否加载完成,没完成继续判断的解决方法

    一个比较头疼的事情,有些插件绑定dom对象的,然后又用jq的语法,比如你在vue+node的时候,基本就要百度方法 我提供一个另类解决方案  比如你下了个轮播图插件   a.js 你打开他的a.js然后  用  function lbt(){} 把整个JS包起来在头部 再加上我这段,基本  是可以用了. isjQueryLoadend(); function isjQueryLoadend(){//判断JQ是否加载完成没有的话 继续判断 if (typeof $ != 'undefined' &

  • yiic命令时提示“php.exe”不是内部或外部命令的解决方法

    本文实例讲述了yiic命令时提示"php.exe"不是内部或外部命令的解决方法,分享给大家供大家参考.具体方法如下: 在CMD中运行 yiic webapp work 如果报"php.exe"不是内部命令,是这样的:原因是Yii自带的yiic.bat找不到php.exe. 解决方法: 因为没有加入环境变量,所以无法直接执行php.exe. 右击"我的电脑->属性->高级->环境变量->系统变量->PATH->编辑&quo

  • 一个applicationContext 加载错误导致的阻塞问题及解决方法

    问题为对接一个sso的验证模块,正确的对接姿势为,接入一个 filter, 然后接入一个 SsoListener . 然而在接入之后,却导致了应用无法正常启动,或者说看起来很奇怪,来看下都遇到什么样的问题,以及是如何处理的? 还是 web.xml, 原本是这样的: (很简洁!) <?xml version="1.0" encoding="UTF-8" ?> <web-app xmlns="http://java.sun.com/xml/n

  • linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法

    出现这个问题可能有以下几种原因: 1.对该文件没有执行的权限. 2.我们的机器是64位的,而下载的jdk是32位的. 我就是后一种原因造成的,好久才想明白. 以上这篇linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Android实现输入法弹出时把布局顶上去和登录按钮顶上去的解决方法

    背景:在写登录界面时,老板就觉得在输入密码的时候谈出来的输入法软键盘把登录按钮遮挡住了(入下图所示,不爽),连输入框都被挡了一半,于是不满意了,要叫我改,于是我看QQ的登录效果,我就去研究了一下,弹出输入法整个布局上来了,终于让老板满意了. (如上图这样,老板不满意的,呵呵) 1,咱们就解决问题吧. 我看了很多博客和问答,很多人都说直接在在AndroidManifest.xml中给这个Activity设置 <activity android:windowSoftInputMode="sta

随机推荐