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

我从Vue源码中学到的一些JS编程技巧

获取HTML格式字符串中非标签文本(vue/src/compiler/parser/entity-decoder.js) 假设我们有这样一个字符串: var html = '<span class="...我们首先想到的肯定是正则表达式,但是这个场景下正则表达式写起来肯定很烦,我们来看看Vue的开发者是怎么处理的: 既然这个<em>字符串</em>是HTML文本<em>格式</em>,我们就可以把它解析成对应的HTML元素。...我们<em>有没有</em><em>办法</em>获得它确切的类型呢?...把值转换成<em>字符串</em>(vue/src/shared/util.js) 我们经常需要把一个值转换成<em>字符串</em>,在<em>JavaScript</em>里面,我们有两种方式来得到<em>字符串</em>: String() JSON.stringify...对于<em>null</em>跟<em>undefined</em>,我们希望把它转成空<em>字符串</em> 当转换一个数组或者我们创建的对象时,我们会使用JSON.stringify 如果对象的toString方法被重写了,那我们会偏向使用String

52961

JavaScript 类型 — 重学 JavaScript

Undefined 本没有没有定义过这个值 Symbol 新加的基本类型 它一定程度上代替了 String 的作用 可以用于 Object 里的索引 与 String 最大的区别就是,String 全天下都一样...NullUndefined 经常被我们的前端工程师被混起来使用, 所以说我们不会把 Undefined 的值用来赋值,我们只会检查一个变量的值是否是 Undefined。...但是客观上来说 JavaScript 是允许进行 Undefined 赋值的。建议大家一定要克制,凡是我们进行过赋值的我们尽量都用 Null,而不是用 Undefined。...这种格式 案例 —— 这里我们尝试使用正则表达式,来匹配一个单引号/双引号的字符串: // 双引号字符正则表达式 "(?:[^"\n\\\r\u2028\u2029]|\\(?...不同的是: Null 表示有值,但是是空 Undefined 语义上就表示根本没有人去设置过这个值,所以就是没有定义 我们要注意 Null 其实是关键字 ,但是 Undefined 其实并不是关键字。

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

初中级前端必须要知道的JS数据类型

JavaScript中有哪些数据类型? 计算机世界中定义的数据类型其实就是为了描述现实世界中存在的事实而定义的。比如我们用人来举例: 有没有人在房间里?...这是一句陈述语句,这种文本类的信息将会字符串形式进行存储,在 JS 中对应 String 类型; 房间里没有人。...nullundefined 傻傻分不清? nullJavaScript 中自成一种原始类型,只有一个值 null,表示无、空、值未知等特殊值。...注意一点,如果用 Symbol 作为对象的属性键的时候, forin 、 Object.getOwnPropertyNames、 Object.keys() 这里循环是无法获取 Symbol 属性键的...中的数字涉及到了两种类型:一种是 Number 类型, 64 位的格式 IEEE-754 存储,也被称为双精度浮点数,就是我们平常使用的数字,其范围是 2^{52} 到 -2^{52};第二种类型是

1.4K20

JavaScript——变量和数据类型

5种基本数据类型: 1、number 数字类型 2、string 字符串类型 3、boolean 布尔类型 true false 4、undefined undefined类型,变量声明未初始化,它的值就是...undefined 5、null null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面上获取不到对象,返回的值就是null 1种复合类型: 1、object 后面学习的数组...、函数和JavaScript对象都属于复合类型 //1.1 数字 number var iOne = 10.1; //1.2 字符串 string var sStr = '1234'; //1.3...布尔 boolean; var bIsTrue = false; //1.4 未定义 undefined var unData; //1.5 null 表示空对象 var nullData = null...小结 js中有六种数据类型,分别是: number string boolean undefined null object

29.2K105

数据类型转换看这篇就够了

日常开发中,我们使用到的Js定义的每一个值都属于某一种数据类型,常见的js数据类型有String(字符串)、Number(数字)、Boolean(布尔)、Object、UndefinedNull、Symbol...parseInt() 方法还有基模式,可以把二进制、八进制、十六进制其他任何进制的字符串转换成整数。基是由 parseInt() 方法的第二个参数指定的 ?...2.Number Number类型是以IEEE-754标准格式来表示的,包括整数和浮点数,如果是计算会转化为2进制再计算,这也是0.1 + 0.2不等于0.3的原因 拓展:为什么在 JavaScript...问题:有没有方法可以解决上述问题呢❓ 可以使用 JavaScript 提供的最小精度值Number.EPSILON,在这个误差的范围内就可以判定0.1+0.2===0.3为true,如下?所示 ?...undefined无法转为数字,第一个调用返回NaN.第二个是null转为隐式转换为0所以是2 ,第三个是如果传入的参数是undefined默认值为准,所以是3 5.2 总结 不要对一个显式变量的赋值

4.4K20

Java学习笔记-全栈-web开发-03-JavaScript基础

JavaScript 变量名称的规则: 变量对大小写敏感(y 和 Y 是两个不同的变量) 变量必须字母下划线开始 注意:由于 JavaScript 对大小写敏感,变量名也对大小写敏感。...简单说,就是一个字面值,它是不可变的,例如: 10 “abc” ECMAScript有五种原始类型 String 在javascript字符串字符串字面值,可以使用单引号双引号声明。...Undefined:该类型只有一个值undefined.表示的是未初始化的变量 Null 该类型只有一个值null,表示尚未存在的对象。值undefined实际上是从值null派生出来的。...因此null==undefined得到的结果是true. 通过typeof方法可以获取一个变量的类型 为什么 typeof 运算符对于 null 值会返回 “Object”。...在javascript中有一个特殊的对象arguments,我们可以通过它来获取所有函数中的参数。 ? 6.3 全局函数 全局函数,只需要理解为:在js中可以直接使用的函数 ? 7.

70220

JavaScript 原始值与包装对象

目前在 JavaScript 中有以下几种原始类型: string(字符串) number(数字) boolean(布尔) null(空) undefined(未定义) bigint(大整数,ES6)...包装对象 (Wrapper objects) 除了 nullundefined 外的原始类型都有其相应的包装对象: String(字符串) Number(数字) Boolean(布尔) BigInt...替身使者 (I can't translate this) 答案揭晓~ 暗中操作 字符串(string)为例,当我们在代码中读取字符串的属性或者方法时, JavaScript 会静默地执行下面的操作...: 将字符串通过 new String() 的方式来创建一个临时的包装对象实例; 通过创建的对象来执行我们的代码逻辑(读取属性执行函数); 临时对象不再使用,可以被销毁。...这也就能解释为什么我们能够访问字符串上的属性和方法,却不能增加修改属性。 那是因为我们实际操作的目标其实是 JavaScript 创建的临时对象,而并非字符串本身!

92440

JavaScript 原始值与包装对象

目前在 JavaScript 中有以下几种原始类型: string(字符串) number(数字) boolean(布尔) null(空) undefined(未定义) bigint(大整数,ES6)...(); // "symbol" 特别注意 typeof null 虽然返回 "object",但是这不代表 null 就是对象,这其实是 JavaScript 的一个 Bug,且从 JavaScript...包装对象 (Wrapper objects) 除了 nullundefined 外的原始类型都有其相应的包装对象: String(字符串) Number(数字) Boolean(布尔) BigInt...替身使者 (I can't translate this) 答案揭晓~ 暗中操作 字符串(string)为例,当我们在代码中读取字符串的属性或者方法时, JavaScript 会静默地执行下面的操作...这也就能解释为什么我们能够访问字符串上的属性和方法,却不能增加修改属性。 那是因为我们实际操作的目标其实是 JavaScript 创建的临时对象,而并非字符串本身!

84410

字符串与JSON

split('\n') 把字符串换行符‘\n’为切割点切割成数组 slice(1,-1) 把数组掐头去尾截取出来 join('') 把数组字符串''为连接点连接成字符串...JSON格式数据如何表示对象 JSON 数据数据表示对象的书写格式是: 对象是一个无序的“‘名称/值’对”集合。一个对象“{”(左括号)开始,“}”(右括号)结束。...简单类型的值只有四种:字符串、数值(必须十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。 字符串必须使用双引号表示,不能使用单引号。...如果数组的成员是undefined、函数 XML 对象,则这些值被转成null。...var arr = [undefined, function () {}]; JSON.stringify(arr) // "[null,null]" 正则对象会被转成空对象。

3.1K30

174道JavaScript 面试知识点总结(上)

7. nullundefined 的区别? 首先 UndefinedNull 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 undefinednull。...详细资料可以参考:《JavaScript 深入理解之 undefinednull》 8. 如何获取安全的 undefined 值?...在 js 中不同进制数字的表示方式 0X、0x 开头的表示为十六进制。 0、0O、0o 开头的表示为八进制。 0B、0b 开头的表示为二进制格式。 13. js 中整数的安全范围是多少?...(1)NullUndefined 类型 ,null 转换为 "null",undefined 转换为 "undefined", (2)Boolean 类型,true 转换为 "true",false...JSON 可以表示数字、布尔值、字符串null、数组(值的有序序列),以及由这些值(数组、对象)所组成的对象(字符串与 值的映射)。

1.4K41

【Java Web_03】ECMA Script

:布尔 * null: 空,占位符 * undefined:未定义 ③ 变量 * var 变量名 * script是弱类型语言,开辟变量空间时不指定变量类型,可以存放任意类型的数据...* typeof():获取数据的类型 * null 类型得到是 object【古老的bug并未解决】 ④ 一元运算符 ++ 、 -- 、 +(-)【+(-)会自动进行类型转换...【没有 & 、| 】 number:0NaN为假,其他为真 string:除了空字符串(""),其他都是true null & undefined:都是...属性:length】 ④ Data * 定义 var time = new Data(); * 方法 toLocaletionString:将日期格式转为本地格式字符串...getTime:获取当前时间到1970-1-1 00:00:00 00 的毫秒值 ⑤ RedExp * 正则表达式:定义字符串的组成规则。

56710

JS中的变量和类型计算

类型转换 强类型转换:通过String(),Number(),Boolean(),parseInt()函数强制转换 可能发生隐式类型转换的场景 字符串拼接 使用== if语句 逻辑循环 一、首先看双等号前后有没有...(false是0,true是1) 三、接着看双等号前后有没有字符串, 有三种情况: 1、对方是对象,对象使用toString()或者valueOf()进行转换; 2、对方是数字,字符串转数字;(前面已经举例...) 3、对方是字符串,直接比较; 4、其他返回false 四、如果是数字,对方是对象,对象取valueOf()或者toString()进行比较, 其他一律返回false 五、null, undefined...'100'==100 //转换成字符串 ''==0 //转换成false undefined == null; // true 1 == true; // true 2 == true; /...null 返回 'object' ,null可以转换为0 undefined 表示“缺少值”,即此处应有一个值,但还没有定义;转为数值时为NaN(非数字值的特殊值) typeof undefined

4.1K10

数据类型、运算符、流程控制语句

1、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型(基本数据类型)和复杂类型的区别是什么?...String:String类型用于表示由零多个16位Unicode字符组成的字符序列,即字符串字符串可以由双引号单引号表示。...null值表示通常有意地指向不存在无效的对象地址的引用,从逻辑角度看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回“object”的原因。...访问时先从栈获取地址,再到堆中拿出相应的值。...Number(undefined) // 0 5.如果是字符串,遵循下列规则: 如果是字符串中只包含数字(包括前面带正号负号的情况),则将其转化成十进制数值。

2.2K40

JSON 格式

一:JSON 格式定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。...2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。 二、JSON 格式规则 复合类型的值只能是数组对象,不能是函数、正则表达式对象、日期对象。...简单类型的值只有四种:字符串、数值(必须十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。 字符串必须使用双引号表示,不能使用单引号。...如果是一个字符串,则每一级别加上该字符串字符串的前十个字符) ?...2.数组 数组的成员是undefined、函数 XML 对象,则这些值被转成null var arr = [undefined, function () {}]; JSON.stringify(arr

2.4K40
领券