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

4种JavaScript交换变量方法

许多算法需要交换2个变量。在编码面试,可能会问您“如何在没有临时变量情况下交换2个变量?”。我很高兴知道执行变量交换多种方法。...本文中,您将了解大约4种交换方式(2种使用额外内存,而2种不使用额外内存)。 1、解构赋值 解构赋值语法(ES2015功能)使您可以将数组项提取到变量。...它适用于任何数据类型:数字,字符串,布尔值,对象。 对于大多数情况,我建议使用解构赋值来交换变量。 2、 临时变量 使用临时变量交换变量是经典。顾名思义,这种方法需要一个额外临时变量。...提醒一下,这是 XOR 真值表: a b a ^ b 0 0 0 1 1 0 0 1 1 1 0 1 JavaScript,按位 XOR 运算符 n1 ^ n2 对n1和n2数字每一位执行 XOR...5、结论 JavaScript提供了很多交换变量好方法,无论有没有额外内存。 我建议使用第一种方法通过应用解构赋值[a,b] = [b,a]交换变量。这是一种简短而富有表现力方法。

3K30

JavaScript变量查找

众所周知,JavaScript变量是按照作用域链来进行查找(作用域和作用域链相关知识可参看我另一篇文章,《基于JavaScript作用域链性能调优》), 那么,对于一个简单赋值操作,等号左右两边变量查找方式一样吗...参考文章首部例子: b = 4; console.log(b); // 4 delete b; console.log(window.b); // undefined 程序并没有声明变量b,但是由于...参考文章首部例子: console.log(b); b = 4; RHS查询变量b,全局作用域中未曾找到该变量定义,于是,引擎抛出异常Uncaught ReferenceError: b is...小贴士 (1) 变量提升 概念:用var声明变量,总是会被JavaScript解释器悄悄地“提升”到方法体最顶部。...参考文首例子: console.log(a); var a = 3; JavaScript引擎会将其解析为: var a = undefined; console.log(a); a = 3; 所以

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

javascript如何将字符串转成变量或可执行代码?

有这样一个需求:当前作用域内有未知一些变量,其中一个函数可以拿到某个变量字符串,怎么能在函数内通过传进来字符串取到作用域链变量值,示例小 demo 如下: const name = '周小黑...' const age = 18 /** * @param {String} e 变量字符串 * @returns value 通过变量字符串作用域链取到变量值 */ function...主要有三种方式: eval() 函数 eval() 函数会将传入字符串当做 JavaScript 代码进行执行,所以下面的字符串可以正确取到变量对应值,eval 对比 new Function 和...setTimeout 定时器 setTimeout 第一个参数我们平时都是传一个函数,它其实也是可以传字符串进去浏览器是可以正常执行node环境中会报错。...实际上浏览器也是不推荐这么用,另外需要注意字符串变量只能访问全局作用域,不能访问局部作用域,如果全局作用域中没有,就是 undefined。

50930

JavaScript类型判断

前言 类型判断 web 开发中有非常广泛应用,简单有判断数字还是字符串,进阶一点有判断数组还是对象,再进阶一点有判断日期、正则、错误类型,再再进阶一点还有比如判断 plainObject、空对象...这就能解释为什么下面这种写法也是可行: console.log(typeof'yayu')// string引用《JavaScript权威指南》对 typeof 介绍: typeof 是一元操作符...返回值为表示操作数类型一个字符串。...那我们都知道, ES6 前,JavaScript 共六种数据类型,分别是: Undefined、Null、Boolean、Number、String、Object 然而当我们使用 typeof 对这些数据类型值进行操作时候...Window对象 Window 对象作为客户端 JavaScript 全局对象,它有一个 window 属性指向自身,这点在《JavaScript深入之变量对象》中讲到过。

1.3K30

JavaScriptJavaScript 变量 ⑤ ( JavaScript 数据类型 - String 字符串类型 | 引号嵌套 | 创建字符串 | 转义字符 )

一、 JavaScript 数据类型 - String 字符串类型 1、String 类型简介 JavaScript String 字符串类型 是 基本数据类型 一种 , 用于表示文本数据 ; 字符串...一旦创建 就不可改变 , 但是可以 创建 新字符串 ; String 类型 字符串 是 使用双引号 " 或单引号 ' 包裹若干字符 ; "Hello, World"; 'Hello, World...'; HTML 属性值 一般都是 双引号 设置 , JavaScript 推荐使用 单引号 定义字符串 ’ 2、引号嵌套 引号嵌套 : 如果想要在 字符串 使用 双引号 / 单引号..." , 换行 , 缩进 , 空格 , 转义字符 \ 等字符 ; 单引号 / 双引号 : 如果要在 JavaScript 字符串 , 使用 单引号 / 双引号 , 可以 引号之前使用 转义字符 , \...字符串中使用 空格 // 字符串空格可以是 \b , 也可以直接打空格即可 var str8 = '空格:\b空格 结束'; console.log

11610

Javascript数据类型

类型存储栈内存,当你进行拷贝操作,会得到一片新内存地址,当你进行相关运算,它会改变当前数据段所存地址,当进行相关函数定义,就会去内存开辟有关变量地址,直到这个函数运行结束,内存就会被相应回收...Javascript,有7种原始数据类型,原始数据类型值是不可改变。...String、Number、Boolean、BigInt、Symbol 如何判断Javascript数据类型(数据类型检测) typeof typeof 操作符返回一个字符串,表示未经计算操作数类型...其实这个是JS语言设计上问题,曾经也有ES修复提案被拒绝了,之所以产生这个结果是因为,JavaScript 值是由一个表示类型标签和实际数据值表示。对象类型标签是 0。...Javascript数据类型是怎么确立Javascript是一种弱类型动态语言,也就是说,其定义变量类型的确立是程序运行时候,自动确立

81010

JavaScript包装类型详解

JavaScript包装类型详解 • JavaScript ,我们有基本类型和对象类型两种数据类型。...• 包装类型JavaScript 一种特殊对象,它们将基本类型值“包装”在对象,使我们能够基本类型上调用方法。...• 例如,当我们一个字符串上调用方法时,JavaScript 会临时将其转换(或者说“包装”)为一个对象,这样就可以调用方法了。...var str = 'hello'; console.log(str.toUpperCase()); // 输出 "HELLO" • 在这个例子,str 是一个字符串基本类型,但我们可以它上面调用... JavaScript ,有两种类型布尔值:基本类型布尔值(true 或 false)和 Boolean 对象(通过 new Boolean() 创建,它是一个包装对象,可以包装一个布尔值,但它本身是一个对象

19020

JavaScript数据类型

ECMAScript变量是松散类型。所谓松散类型就是指变量可以用来保存任何类型数据。 ...为了规避这样问题,我变量命名时候对变量类型做了标明。...1、Undefined类型  声明后未赋值变量,或者未声明变量,typeof值都是Undefined。区别在于,未声明变量调用时会报错。 有鉴于此,变量声明之初初始化会十分有用。...2、Null类型 null值标识是一个空指针对象,所以他typeof值为“Object”。所以初始化Object类型变量时候,使用null作为初始化值就可以了。...5、String类型 ECMAScript字符串用双引号(")或者单引号(')都是可以,但是为了做一个全方面发展好程序员,还是区分对待比较好。

2.2K60

JavaScript 强制类型转换

陌生事情 JavaScript 两种类型之间进行转换时有一些奇怪规则。让我给你一些背景信息。先用 Python 举一个例子。..."hello89,150.156,mike" 这两行 JavaScript 足以让 Java 程序员逃离。但是这种行为 JavaScript 100% 是又意义。...你可能会惊讶地发现 JavaScript 加法运算符 + 会自动将两个操作数任何一个都转换为字符串,如果其中至少有一个是字符串的话!...但是当你普通 JavaScript 对象上调用 toString() 时,引擎会给出“[object Object]”,因为 Object.toString() 默认行为是由实体类型(在这种情况下为...JavaScript 隐式转换称为强制类型转换,并在 ECMAScript 规范定义。无论什么时候你代码都要使用严格比较运算符 === 而不是 ==。

1.9K30

JS变量类型计算

) var a = {x:10}var b = a; a.x = 20; console.log(b); //20 值类型直接把值存储,把a赋值给b在内存是又给b开辟了一块新空间,存储了同样值...引用类型分两块存储,先在堆存储一个实际值,再在栈存储一个堆中值引用地址,指向堆对象。...把a赋值给b是重新开辟一块空间存储还是相同对象引用地址,a和b存储地址相同,指向对象也相同。当对象值发生改变时,两者会同时改变。...串JSON.stringify({x:10}); //将json字符串转换成json对象JSON.parse("{'x':10}"); 严格模式 目的 消除Javascript语法一些不合理、不严谨之处...2.不容易调试,可读性不好 3.浏览器如果你使用了eval,性能会下降10倍。

4.1K10

解析 JavaScript 高阶函数

解析 JavaScript 高阶函数JavaScript 以其多范式编程为特色,其中函数式编程是其中之一核心方法之一。...函数式编程核心概念,有一个重要概念就是函数 - 一个可重用代码块,旨在执行特定操作。一阶函数:深入研究高阶函数之前,让我们简要了解一下一阶函数。...以下是一个示例:// 接受原始数据类型变量const firstOrderFunction = (number1, number2) => { // 返回原始数据类型值 return number1...:JavaScript 提供了许多内置高阶函数,通常用于操作数组、字符串、Promise、DOM 等。...总的来说, JavaScript 掌握高阶函数使开发人员能够编写优雅且高效代码,从而促进项目的可维护性和可扩展性。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

10700

JavaScript 模板字符串

模板字符串是可以使用内嵌表达式字符串,不少高级语言中都有这一特性,如 Python、Kotlin,JavaScript ES5 规范中加入了这一特性。...☕ 语法 `text` `lin1 lin2` `text ${expr}` tag `text ${expr}` 详解 JavaScript 模板字符串使用反引号来包裹字符串内容而不是单引号或双引号...转义 因为模板字符串使用反引号来包裹字符串内容,所以模板字符串内部使用反引号时需要转义,如下: `\`` === '`' // true 多行字符串 如果使用模板字符串,任何被包裹在两个反引号之间字符都会被认为是有效字符串内容...标签使您可以用函数解析模板字符串。标签函数第一个参数包含一个字符串数组。其余参数与表达式相关。最后,你函数可以返回处理好字符串(或者它可以返回完全不同东西 , 如下个例子所述)。...原始字符串 标签函数第一个参数,存在一个特殊属性 raw ,我们可以通过它来访问模板字符串原始字符串,而不经过特殊字符替换。

1.4K20

JavaScript类型转换、判断类型相关知识

date日期...等都归属于Object】不同类型之间运算需要先对数据类型进行转换,这里就包括隐式类型转换和强制类型转换隐式类型转换通常在一些数学运算,比如:+ - * / > < == 这些运算会发生隐式转换...123console.log(parseInt('ab123')) // NaNconsole.log(parseInt('123.93aa')) // 123parseFloat()如果 parseFloat 解析过程遇到了正号...、或者科学记数法指数(e 或 E)以外字符,则它会忽略该字符以及之后所有字符,返回当前已经解析浮点数。...:1、parseInt 和 parseFloat 可以将以数字开头字符串转换为数值2、Number 可以将空字符串转换为 0判断变量类型方法typeoftypeof 判断结果有:"undefined...instanceof Object) // trueconsole.log(str instanceof String) // trueObject.prototype.toString.call()最精确判断变量类型方式

35750

JavaScriptJavaScript 变量 ⑥ ( JavaScript 数据类型 - String 字符串类型 | 字符串长度 | 加号运算符 拼接字符串 | 模板字符串 拼接字符串 )

一、 JavaScript 数据类型 - String 字符串类型 1、字符串长度 JavaScript , String 字符串数据类型 " 长度 " , 就是 组成 字符串 " 字符个数..." , 可以通过访问 字符串 length 属性 , 获取 字符串长度 ; 代码示例 : // 获取字符串类型变量长度 let str = "Hello World... JavaScript , " 字符串拼接 " 指的是将 多个 字符串 组合成一个新字符串 操作 ; 这可以通过使用 加号运算符 + 模板字符串 $ 两种方式 来 实现 " 字符串拼接 "...; 注意 : 拼接后 字符串 , 是 新字符串 , 与 原来字符串 没有任何关系 ; 只要有 字符串 与 其它类型数据相加 , 最终结果就是 字符串 ; 使用 加号运算符 拼接字符串 下面的示例...拼接字符串 模板字符串 就是 使用 ${expression} 语法嵌入表达式 拼接字符串 , 这种拼接方式更加直观 ; ${expression} 表达式 , 可以 直接 使用 变量 / 表达式

13410
领券