Javascript 文字数字应该没有引号吗?
我知道文字数字不需要在值周围加引号。例如,Javascript 文字数字应该没有引号吗?,javascript,Javascript,我知道文字数字不需要在值周围加引号。例如,varx=123是可接受的,不需要是var x='123'或var x=“123” 也就是说,引用文字数字有什么不对吗 如果“数字”是一个zipcode或数据库记录ID,而不是一个在算术中可能使用的正常意义上的数字,那么答案会不同吗?它不是一个数字。引用一个数字会使它成为一个字符串,这可能会导致处理它们的方式有所不同。例如: var a = 1; var b = '33'; console.log(a + b === 34); // false con
varx=123代码>是可接受的,不需要是var x='123'代码>或var x=“123”代码>
也就是说,引用文字数字有什么不对吗
如果“数字”是一个zipcode或数据库记录ID,而不是一个在算术中可能使用的正常意义上的数字,那么答案会不同吗?它不是一个数字。引用一个数字会使它成为一个字符串,这可能会导致处理它们的方式有所不同。例如:
var a = 1;
var b = '33';
console.log(a + b === 34); // false
console.log(a + b === '34'); // true
字符串也有不同的类型和操作方法。但是,对于大多数数字运算符(-
、/
、*
和其他按位运算符),它们在执行操作之前将字符串形式转换为其等效的数字形式
在某些情况下,由于JavaScript数字存储在浮点格式中的性质,数字存储时没有使用其精确值,这也存在一些差异。字符串避免了这个问题,尽管操纵它们要困难得多。将这些数据转换回数字会重新引入这些问题。例如,请参见以下内容:
var recordID = 9007199254740992;
var previousID = recordID;
recordID += 1;
console.log(recordID === previousID); // true
添加引号使数字成为字符串文字,因此与不带引号定义的数字文字有不同的用途
JavaScript具有类型强制的概念,这可能会让您感到困惑。引用会生成一个数字字符串。这意味着,例如,+
操作将连接而不是添加:
var a = 'asdf';
var b = '20';
var c = a + b; // asdf20
这是对正在发生的事情的一个很好的解释
我知道文字数字不需要在值周围加引号。例如,var x=123;是可接受的,不需要是var x='123';或var x=“123”
这不是必需的与非必需的之间的问题(可选)
使用引号(单引号或双引号)表示它是一个字符串(一个字符序列-无论它们是否都是数字)
如果你不加引号,你就说这是一个数字
也就是说,引用文字数字有什么不对吗
如果它所表示的实体实际上不是数字而是字符串,则为否。所以
如果“数字”是zipcode或数据库记录ID,而不是算术中可能使用的正常意义上的数字,那么答案会不同吗
如果数字是一个zipcode,那么加引号可能是有意义的,因为它是一个“代码”,而不是一个数字,并且不受算术运算的影响
你不会把一个zipcode除以2或者两个zipcode求和,因为那是没有意义的
但不是根据引用的值来决定是否引用引文,我建议你从<强>语言透视>/P>来考虑这个问题。
当在表达式(赋值或比较)中使用字符串而不是数字时,您应该理解并始终记住语言运算符的行为。我的意思是,它不是非法的或任何东西。您只是创建了一个字符串而不是一个整数。我的案例使用的是一个记录ID。我以前使用的是一个整数,但现在改为文本。谢谢。如果整数是zipcode或数据库记录ID怎么办?@user1032531:这取决于具体情况。对于zipcode,并不是所有国家都使用数字zipcode,也没有太多需要对其执行算术运算的变量。对于其他用途,将它们存储为数字可能更有意义。