服务器在哪里,珠海seo排名收费,京东上怎样做网站,网上商城代码一、理解js隐式转换
JavaScript 中的隐式转换是指不需要显式地调用转换函数#xff0c;而是在执行期间自动发生的数据类型的转换。即在使用不同类型的值进行操作时#xff0c;JavaScript会自动进行类型转换。这种转换通常发生在不同数据类型之间进行运算或比较时。
序号分类…一、理解js隐式转换
JavaScript 中的隐式转换是指不需要显式地调用转换函数而是在执行期间自动发生的数据类型的转换。即在使用不同类型的值进行操作时JavaScript会自动进行类型转换。这种转换通常发生在不同数据类型之间进行运算或比较时。
序号分类1字符串与数字之间的转换 当使用加号运算符将字符串和数字进行拼接时JavaScript会将数字转换为字符串类型实现字符串与数字的拼接。2将字符串转换为数字 当使用减号-运算符时JavaScript会将字符串转换成数字类型进行运算。3布尔值与数字之间的转换 当使用布尔值和数字进行运算时JavaScript会将布尔值转换成数字类型true 转换为 1false 转换为 0。4对象和原始值之间的转换 当使用对象和原始值进行运算时JavaScript会自动将对象转换成原始值类型例如将对象转换成字符串时会调用对象的 toString() 方法。5隐式转换为布尔值 当判断条件中使用非布尔值时JavaScript会将其转换成布尔值例如将数字 0、空字符串、null、undefined、NaN等转换为 false其它值都转换为 true。
序号类型实例1字符串与数字的相加隐式转换成字符串1 2 // 122字符串与布尔值的相加隐式转换成字符串true true // truetrue3数字与布尔值的相加隐式转换成数字1 true // 24数组与字符串的相加隐式转换成字符串[1, 2, 3] hello // 1,2,3hello5数字与字符串的比较隐式转换成数字1 2 // false 1 2 // true6布尔值与数字的相乘隐式转换成数字 布尔值与数字的相加隐式转换成数字true * 2 // 2 true 1 // 27对象与布尔值的比较隐式转换成布尔值if ({}) { // 这里的代码会执行 }8数字类型作为条件转换为布尔值隐式转换成布尔值var num 0; if (num) { console.log(num is true); // 不会执行到这 }9undefined和null的转换 将undefined转为数字类型时结果为NaN 将null转为数字类型时结果为0 将undefined和null转为布尔类型时结果均为falseNumber(undefined) // NaN Number(null) // 0 Boolean(undefined) // false Boolean(null) // false10字符串与数字加、减、乘、除10 1 // 101 10 - 1 // 9 10 * 2 // 20 10 / 2 // 5 10 / two // NaN11当一个对象参与加法运算时会自动调用对象的 valueOf() 方法或 toString() 方法将对象转换成字符串或数字 1、如果对象具有 valueOf() 方法则 JavaScript 将首先调用该方法。valueOf() 方法返回对象的原始值通常是一个数字或布尔值。 2、如果对象没有 valueOf() 方法或者 valueOf() 方法返回一个非原始值则 JavaScript 将尝试调用对象的 toString() 方法。toString() 方法返回一个表示对象的字符串。 3、如果对象没有 valueOf() 方法和 toString() 方法或者两个方法都返回一个非原始值则 JavaScript 将抛出一个类型错误TypeError。 let obj {valueOf: function() { return 42; },toString: function() { return 42; }
}console.log(obj 1); // 43let obj2 {toString: function() { return 2; }
}console.log(obj2 * 3); // 6let obj3 {}console.log(obj3 hello); // [object Object]helloJavaScript 中的隐式转换有时可能会导致出乎意料、不符合预期的结果特别是当开发人员不熟悉隐式转换规则时。因此在编写 JavaScript 代码时需要对隐式转换进行充分的理解和考虑。同时为了避免因类型转换造成的不必要的麻烦例如在使用“”或“!”进行比较时会进行隐式转换应该尽可能的使用严格相等“”或“!”操作符进行比较。在编写代码时应尽量避免隐式转换而是显式地进行类型转换。
二、理解js显式转换
在 JavaScript 中显式转换是指通过代码的明确操作将一个数据类型转换为另一个数据类型。
序号方法解释1parseInt()将字符串转换为数字 parseInt() 函数用于将整数字符串转换为整数 parseFloat() 函数用于将浮点数字符串转换为浮点数 如果无法转换则返回 NaN。2parseFloat()3Number()将字符串、布尔值、undefined 和 null 转换为数字4String()将数值、布尔值、对象、数组、null 和 undefined 转换为字符串5Boolean()函数将任何类型的值转换为布尔值。其中只有 null、undefined、false、空字符串和数字 0 被转换为 false其他所有值都被转换为 true6操作符、-、*、/将数值字符串和布尔值转换为数字7Object()函数将基本类型的数据转换为对应的对象类型。
显式转换在编程时非常常见可以使程序更加明确和可读。但是要注意如果显式转换不当也可能会在程序运行时产生错误。因此在进行显式转换时要仔细考虑转换的类型和转换的方式以避免潜在的错误。
三、理解js隐式操作
在 JavaScript 中有很多隐式操作这些操作是指在执行时自动发生而不需要显示的操作即不需要明确调用的操作。
序号方法解释1隐式类型转换在进行运算或比较时JavaScript 会自动将不同类型的值转换成同一类型进行操作。例如字符串和数字进行运算时JavaScript 会将字符串转换成数字。2隐式原型链当使用对象的属性时如果该属性不在该对象的属性列表中JavaScript 会沿着原型链向上查找该属性。这是一个自动发生的过程称为隐式原型链。3隐式闭包当一个函数内部引用了外部的变量时JavaScript 会自动创建一个闭包。这个闭包会将被引用的变量保存在内存中直到该闭包被销毁。4隐式对象创建当使用对象字面量或 new 关键字创建对象时JavaScript 会自动为该对象创建一个原型对象。5隐式函数调用当使用函数调用时如果函数的调用方式不是以对象方法的形式调用那么调用的函数会成为全局对象的一个方法此时 this 指向全局对象。6变量提升在JavaScript中变量和函数的声明会在代码执行前进行“提升”即将声明提前执行使得在声明之前就可以使用这些变量或函数。7this关键字this关键字在不同的上下文中会有不同的值例如在函数内部指向函数的执行上下文而在对象方法中指向该对象。8隐式迭代JS中的数组和对象都可以进行迭代操作例如使用for-in和for-of循环来遍历对象和数组。9隐式全局变量如果在函数中没有使用var或let关键字则会隐式创建一个全局变量。10隐式递归某些函数会在函数内部调用自身来实现递归操作这种递归操作是隐式的。
四、理解js显式操作
在 JavaScript 中显式操作是指通过代码的明确操作来实现某种操作或实现某种行为。
序号方法解释1赋值操作符将一个值赋给一个变量。2数学操作符、-、*、/、%用于数学计算例如将两个数字相加或相乘等。3比较操作符、、、、、!用于比较两个值的大小或相等性。4逻辑操作符、||、用于逻辑计算例如判断两个条件是否同时成立、或者取反一个值等。5条件操作符用于根据条件返回不同的值。6函数调用使用函数名称和参数列表来调用一个函数。
通过显式操作我们可以方便地控制程序运行的过程实现我们想要的功能。同时显式操作也常常被用来进行数据类型转换、类型检查等操作进一步增强程序的健壮性和可维护性。
五、欢迎交流指正。
参考链接
JavaScript中的隐形转换
JS的隐式转换与显式转换_js隐式转换和显式转换_厉飞雨123的博客-CSDN博客
一文带你了解JavaScript的隐式类型转换_javascript隐式转换_ajaxsync的博客-CSDN博客