JavaScript 中的陷阱是什么?
由于其简单性和多功能性,Javascript 确实是一种流行的语言。尽管有很多优点,但 Javascript 是一种有趣的语言,有时会让您感到困惑,尤其是对于那些习惯于传统 OOP 语言的人。
- 棘手的部分或“陷阱”(不限于以下)是:
- == vs ===
- 区分大小写
- 解析整数
- 自动分号插入
- ' == ' 与 '===' 不同:并非所有等号的含义都相同。双等号运算符遵循类型强制,这意味着变量的两种数据类型不需要匹配。三等号运算符是一个严格的等号运算符,即它将执行类型强制。
例子:console.log(12 == '12') console.log( 12 === '12')
如果在控制台上运行它,它会提供以下输出:
true false
这意味着当我们使用 '=='运算符时,它会将字符串12 转换为数字并比较这些数字。由于它们是相同的数字,因此它返回一个真值。在 '==='运算符中,它遵循严格类型并检查数据类型和值。由于一种数据类型是字符串,另一种是数字类型,它返回一个假值。
- 区分大小写:标识符用于命名关键字、变量和函数。像大多数编程语言一样,命名变量的规则也是相同的。由于 javascript 区分大小写,
标识符的第一个字符可以是字母或美元符号,但不能是数字。两个变量不必相同。例子:age ="20"; Age = "23";
在这里,Age 和 age 是两个独立的字符串变量。
注意:Javascript 遵循驼峰式表示法。
- 解析:
- parseInt函数将字符串解析为数字。它有两个参数:
- 第一个参数 - 获取您要解析的字符串。
- 第二个参数 - 数字的基数。范围可以是 2 到 36。
句法:
parseInt(string, radix)
在大多数情况下,默认基数是基数 10。但是,如果数字以0x 开头,则假定字符串将被解析为基数 16 ,如果数字以0开头,则假定基数为8 。
例子:parseInt("02", 10); parseInt("0x11");
输出:
2 17
- 自动分号插入:尽管分号在 Javascript 中是可选的,但在需要的地方添加分号是一个好习惯。这是因为 javascript 会自动在您的代码中添加分号并可能引发错误。考虑一个 ASI(自动分号插入)的经典示例:
function foo1() { return { bar: "hello" }; } function foo2() { return { bar: "hello" }; } console.log("foo1 returns:"); console.log(foo1()); console.log("foo2 returns:"); console.log(foo2());
输出:
foo1 returns: Object {bar: "hello" } foo2 returns: undefined
在上面的代码中,它们似乎返回了相同的对象,但第二个对象没有返回,并且由于 ASI 而返回了一个未定义的值。