正在检查字符串是否符合数字的良好样式
Is checking a string against a number good style?
哪一个JS片段在风格方面更好?
var answer = Number(prompt('What is the value of 2 + 2?'));
if (answer === 4) {
// do something
}
与
var answer = prompt('What is the value of 2 + 2?');
if (answer == 4) {
// do something
}
我认为第一个更好,因为它更显式(并且不会发生类型强制转换)。
它们都是错误的,因为您应该使用parseInt(XX, 10)
。记住,每次你使用==
,耶稣就会杀死一只小狗。因此,始终使用===
,因此:始终检查正确的类型
这取决于你想用answer
做什么。如果您想做的只是比较它,则不需要转换类型:
var answer = prompt('What is the value of 2 + 2?');
if (answer === "4") {
// do something
}
如果您想以一个数字结束比较,然后进一步处理,Number
或一元加号运算符+
将把输出字符串转换为数值,或者NaN
,如果它不是一个有效的10进制数。
var answer = +prompt('What is the value of 2 + 2?');
if (answer === 4) {
// do something
}
parseInt(x, 10)
和Number(x)
是有区别的,前者会忽略末尾的非数字字符。
parseInt("4Hello World"); // 4
Number("4Hello World"); //NaN
+"4Hello World"; //NaN
当然是第一个,因为,正如你提到的,没有类型强制转换发生。但是你应该使用parseInt:
var answer = parseInt((prompt('What is the value of 2 + 2?'), 10)) ;
最好是
<>之前var n = prompt(" 2 + 2的值是多少");n = parseInt(n, 10);//检查相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 将样式表插入iframe
- 跟踪在页面加载时应用内联样式的JavaScript
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 将数字转换为一定数量的硬币
- 定义完全独立的样式信息
- 键入最后一位数字后自动提交
- 如何在javascript中迭代数字列表
- Javascript逻辑运算符和字符串/数字
- 如何在javascript中获得与特定数字相等的随机数
- 画布填充从数字开始设置样式
- 通过jQuery替换数字,而不更改样式中的数字或其他所有内容
- 如何查找文档中的所有数字并设置它们的样式
- 如果数字大于无线电值的值,则更改样式
- 正在检查字符串是否符合数字的良好样式
- 使用java脚本在acrobatpdf表单中更改字段数字样式
- 如何设置输入类型=""的样式;数字"
- 自定义Tinymce以将样式设置为编号有序列表中的数字