在JS中最常看到切最容易迷惑的语法(转)

在JS中最常看到切最容易迷惑的语法,其实就是一些隐式类型转换的规则。由于JavaScript是一门动态类型语言,变量的类型是可以自由转换的。这就导致了很多混淆和难以理解的代码。以下是完整攻略:

隐式类型转换

在JavaScript中,有很多情况下会发生隐式类型转换。例如:

console.log(1 + true); // 2
console.log('2' * '3'); // 6
console.log('4' - 2); // 2
console.log('4' + 2); // 42
console.log(true + true); // 2

这些例子中,我们可以看到一些奇怪的类型转换,其中包含了数字、字符串和布尔型的混合使用。值得注意的是,这些类型转换是由运算符隐式触发的。

null 和 undefined

在JavaScript中,null和undefined都表示无值。null通常是由程序员显式赋值的,而undefined则表示变量已经声明但没有被初始化。虽然它们在某些情况下表现相似,但它们在实际使用中还是有一些细微的差别:

console.log(typeof(null)); // 'object'
console.log(typeof(undefined)); // 'undefined'
console.log(null == undefined); // true
console.log(null === undefined); // false

在上述代码中,我们可以看到typeof运算符对于null和undefined的返回值不同。此外,null和undefined在进行相等性比较时,会被判定为相等,但在进行严格相等性比较时,会被认为是不同的值。

NaN

NaN代表Not-a-Number,表示非数字。NaN的类型是数字,但是它是一个无效的数字,无法进行任何有效的计算。NaN是一个具有传染性的值,意味着它在与其他数字进行操作时,会导致结果也是NaN:

console.log(1 / 'hello'); // NaN
console.log(1 * NaN); // NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false

在上述代码中,我们可以看到对于字符串和NaN的除法结果是NaN,同时NaN和任何值都是不相等的,包括自身。

实际应用

虽然隐式类型转换在JavaScript中很常见,但在实际应用中,我们应该尽可能使用明确的类型转换,以避免出现不必要的错误和混淆。例如,我们可以使用parseInt()或parseFloat()函数来将字符串转换为数字:

console.log(parseInt('123')); // 123
console.log(parseFloat('3.14')); // 3.14

在上述代码中,我们使用了parseInt()和parseFloat()函数来将字符串转换为数字。这些函数可以确保我们得到的结果是我们预期的,而不是由于隐式类型转换导致的奇怪行为。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在JS中最常看到切最容易迷惑的语法(转) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 通过jquery获取上传文件名称、类型和大小的实现代码

    通过 jQuery 获取上传文件的名称、类型和大小,可以通过 FormData 和 FileReader 对象实现。具体的实现步骤如下: HTML 首先,在 HTML 中添加一个 input 标签,作为上传文件的入口: <form> <input type="file" id="upload">…

    jquery 2023年5月19日
    00
  • jQWidgets jqxGauge RadialGauge disable()方法

    以下是关于“jQWidgets jqxGauge RadialGauge disable()方法”的完整攻略,包含两个示例说明: 方法简介 jqxGauge 控件的 RadialGauge 类型的 disable() 方法用于禁用仪表盘。该方法的语法如下: $("#gauge").jqxGauge(‘disable’); 在上述代码中,#…

    jquery 2023年5月10日
    00
  • jQuery Mobile页面创建事件

    下面是有关“jQuery Mobile页面创建事件”的完整攻略。 1. 什么是jQuery Mobile页面创建事件 在jQuery Mobile中,页面创建事件是在页面创建时触发的事件,可以在此事件中执行一些初始化操作,如绑定事件、设置样式等。 2. 如何绑定页面创建事件 可以使用pagecreate事件来绑定页面创建事件,该事件可以在页面的任何元素上绑定…

    jquery 2023年5月12日
    00
  • Jquery 获取指定标签的对象及属性的设置与移除

    接下来我会为你详细讲解“Jquery 获取指定标签的对象及属性的设置与移除”的完整攻略。 Jquery 获取指定标签的对象 1. 通过标签名获取对象 在 Jquery 中,我们可以通过标签名来获取 DOM 对象,使用方法如下: // 获取所有 <p> 标签的 DOM 对象 var pTags = $(‘p’); 2. 通过类名获取对象 我们也可以…

    jquery 2023年5月28日
    00
  • jQWidgets jqxTimePicker format属性

    以下是关于 jQWidgets jqxTimePicker 组件中 format 属性的详细攻略。 jQWidgets jqxTimePicker format 属性 jQWidgets jqxTimePicker 组件的 format 属性用于设置时间选择器中显示的格式。可以使用该属性设置任何必要的时间格式,例如 “hh:mm tt” 或 “HH:mm:s…

    jquery 2023年5月11日
    00
  • 如何使用jQuery Mobile制作一个禁用的复选框

    以下是使用jQuery Mobile制作一个禁用的复选框的完整攻略: 首先,在HTML文件中引入jQuery Mobile库。可以以下代码实现: <head> <meta name="viewport" content="width=device, initial-scale=1"> <t…

    jquery 2023年5月11日
    00
  • js实现图片上传到服务器和回显

    首先,需要了解图片上传到服务器和回显的基本过程: 前端通过<input type=”file”>标签选择文件并上传到服务器; 服务器将文件存储到指定目录下,并返回图片在服务器的存储路径; 前端通过获取服务器返回的图片路径,并将其作为<img>标签的src属性值,即可实现图片的回显。 接下来,我们将分步骤讲解如何通过JS实现图片上传到服…

    jquery 2023年5月28日
    00
  • jQuery UI Resizable create事件

    jQuery UI Resizable create事件 jQuery UI Resizable create事件是在调整大小小部件创建时触发的事件。该事件在调整大小小部件创建时只触发一次。 语法 create的语法如下: $(selector).resizable({ create: function(event, ui) { // 在调整大小小部件创建时…

    jquery 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部