首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript-原始值和引用值

一、原始值和引用值的概念 在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。...1.2 引用值 (1)引用值指的是 引用类型 的值,例如 Object、Function、Array、Date、RegExp 。...三、原始值和引用值的不同 3.1 赋值方式 3.2 值是否可变 3.3 比较方式不同 四、赋值方式和值是否可变 4.1 原始值是以值的拷贝方式赋值,值是不可变的。...4.4 说明 (1)原始值赋值 → 其实是将值拷贝一份并赋值给新的变量,这个值就是副本,他和原始值是互相独立的,改变其中一个值不会影响到其他的值。...五、比较方式不同 5.1 原始值的比较是 值 的比较 5.2 引用值的比较是 引用 的比较 5.3 Example ? 5.4 说明 (1)原始值 a 和 b 的数据类型不同,但也可以进行值的比较。

1K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Javascript预解析

    为什么会讲到这个预解析呢,个人认为工作了很多年的前端可能都不一定搞清楚这个机制,所以还是将这个记录下来作为自己的学习笔记,同时也分享给广大的其他爱学习的前端开发者们。...这就牵扯到JS的预解析,首先Javascript会预解析代码中所有的变量和函数,因此在执行sum(2, 10)函数前已经将sum函数进行解析了,所以在调用sum函数的时候能正常输出。...我们来看下预解析后的情况吧 function sum(a, b){ return a+b; } sum(2, 10); 。。。。。。...让我们来还原一下Javascript的解析过程,还原后的结果如下: var sum; //先执行var定义变量sum sum(2, 10); //执行sum函数,报错,因为未定义sum函数 sum...function c(){ console.log(2); } console.log(c); //这个时候c是一个函数 var c = 1; console.log(c); //这个时候c是一个变量且值为

    14110

    JavaScript真假值知多少

    JavaScript变量是弱类型并且语言本身不关心一个值如何声明和改变。...因为在比较前JavaScript会把每个值转换成字符串形式: // all true 1 == '1'; 1 == [1]; '1' == [1]; 当用`===`(全等)比较的时候,结果都是`false...`,因为值的类型被考虑在内: // all false 1 === '1'; 1 === [1]; '1' === [1]; 在JavaScript里,会将值设定为六种原始数据类型其中的一种: · Undefined...其它一切都是对象 - 包括数组 真假值 除了本身类型,每个值都有一个固有的布尔类型,通常被称为真假值,一些规则有点奇怪,所以在比较时理解那些概念和影响有助于调试JavaScript应用程序。.... // 如果x和y完全相同执行 // 包括有一个NaN或者都是NaN 结论 真假值允许你写出简单的JavaScript条件判断和三元运算。然而,我们总是得考虑这些边界情况。

    76320

    深入解析 JavaScript 函数的 length 属性与参数默认值的关系

    在 JavaScript 中,函数的 length 属性表示函数定义时显式指定的、且从第一个没有默认值的参数的个数。...length);//1 console.log(f3.length);//1 console.log(f4.length);//0 对于 f0 函数: 它明确指定了三个参数 a、b 和 c,且都没有默认值。...所以 f0.length 的值为 3 。 对于 f1 函数: 虽然有三个参数,但只有 a 没有默认值,b 和 c 都有默认值。 因此 f1.length 为 1 。...对于 f2 函数: 从第一个没有默认值的参数,只有 a 没有默认值。 故 f2.length 也是 1 。 对于 f3 函数: ...args 表示剩余参数,它不计入 length 的计算。...只有第一个参数 a 没有默认值。 所以 f3.length 为 1 。 对于 f4 函数: 从第一个没有默认值的参数开始算,第一个a 有默认值。 所以 f4.length 应为 0 。

    11810

    JavaScript重构技巧 — 对象和值

    JavaScript 是一种易于学习的编程语言,编写运行并执行某些操作的程序很容易。然而,要编写一段干净的JavaScript 代码是很困难的。...用常量来表示数字 如果我们有很多重复的值且表示一样的含义,但没有明确地说明,那么我们应该将它们转换为常量,以便每个人都知道它们的含义,并且如果需要更改,我们只需更改一个地方就行了。...例如我们可能会这样写代码: class Person { constructor(name) { this.name = name; } } 如果要控制如何设置值,可以这样重构: class..._name = name } } 这样,我们就可以控制如何设置值,因为我们可以在setter中放入代码来设置名称。我们还可以控制谁能获得名称,因为它是在getter中返回的。...总结 如果我们有很多重复的值且表示一样的含义,但没有明确地说明,那么我们应该将它们转换为常量,以便每个人都知道它们的含义,并且如果需要更改,我们只需更改一个地方就行了。

    97610

    Javascript 判断假值的方法

    概念:什么叫假值? 在JavaScript中,false、null、0、”“、undefined 和 NaN被称为假值。 Boolean 对象是一个布尔值的对象包装器。...var x = new Boolean(); 如果Boolean构造函数的参数不是一个布尔值,则该参数会被转换成一个布尔值....如果参数是 0, -0, null, false, NaN, undefined, 或者空字符串 (“”),生成的Boolean对象的值为false....其他任何值,包括任何对象或者字符串”false”, 都会创建一个值为true的Boolean对象. 不要将原始值为true/false,和值为true/false的Boolean对象相混淆....现在我们可以利用Boolean对象的构造特性,判断值是否为假值。 讲一个非布尔值转化成布尔值,需要直接使用Boolean函数,而不能通过新建Boolean对象。

    1.3K20

    插值查找易懂解析

    注意:插值查找和二分查找都需要数组是有序的才可以进行查找 假设我有一组有序的线性表{1,2,3,4,...,20},我们来利用二分查找来找1,看看它会经过几次能找到我们的1代码如下: /**...right if (left > right){ return -1; } //进行查找 if (findVal >midVal){ //表示要查找的值在右边...从上述的结果图中我们发现,为了找1我们递归了4次才找到的,其实这样的话看来二分查找的效率不是很高,那么有没有一种自适应的方式来快速的帮助我们完成查找的这个操作,答案是有的,也就是我们本节学习的插值查找,...简单的来介绍下什么是插值查找算法?...插值查找算法介绍 其实插值查找算法的过程跟二分查找的类似,二者唯一的区别是插值查找每次都能从自适应的mid(中间值或者是中间索引或者是下标)处开始找,还记的我们在二分查找算法中求解mid的过程?

    66620

    JavaScript空值合并运算符

    ❝「目录」 使用 JavaScript 空值合并运算符 使用实例 空值合并运算符与逻辑或( ||) 浏览器支持 总结 ❞ 在ES2020中,我们获得了在其他语言中( 如 C# 和 PHP)早已可用的功能...空值合并运算符接受虚值(Falsy values[5])。 ? 使用 JavaScript 空值合并运算符 让我们看一些例子。请记住,JavaScript 的空值合并运算符将遵循 ??...true // false 链接 JavaScript 的空值合并运算符 JavaScript 的空值合并运算符的妙处在于,我们可以根据需要将其进行多次链接。...浏览器支持 在撰写本文时,最新版本的 Chrome、Firefox、Edge 和 Safari 可以使用空值合并运算符。 ? 总结 空值合并运算符是该 JavaScript 语言不错的补充。.../blog/the-and-and-or-operators-in-javascript

    1.5K50
    领券