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

javascript(二):数据类型&数值

(complex type)值,一个对象往往是多个原始类型合成;undefined和null是两个特殊值!...window); 运行结果: image.png 数值,字符串,布尔类型,函数undefined返回分别为number,string,boolean,function,undefined; 除此之外其它均返回...(谷歌开发javascript语言替代品Dart语言,只有null,没有undefined)。 if语句中,它们都会转为false;==相等运算符中,两者相等!...'); }else{ console.log('undefined if语句中会转化为false'); } if(!...但是作位运算,因为位运算符只对整数起作用,所以此时会以32位带符号整数进行运算,返回值也是32位带符号整数! 由于浮点数不精确,所以涉及到小数运算要小心: ?

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

理解ECMAScript规范(2)

对于o2.foo来讲,基础值是对象o2,引用名是字符串"foo",严格引用标志是false(因为示例代码未启用严格模式)。 扩展学习:为什么是引用不是记录? 引用不是记录,尽管它可以是记录。...注意,获取函数this值引用是我们想从中获取属性原始对象,不是原型走查从中找到属性对象。...获取函数返回this.x。 然后,访问o2.foo。你觉得这个获取函数返回哪个值? 我们发现,调用获取函数,this值是我们最初尝试从中获取属性对象,不是从中找到这个属性对象。...具体说,就是this值是o2,不是o1。可以从返回是o2.x还是o1.x来判断:返回是o2.x。 我们通过阅读规范就可以预测这段代码行为! 访问属性为什么调用[[Get]]?...规范哪里说访问属性(如o2.foo)要调用对象内部方法[[Get]]了?没错,一定在哪个地方规定了。不要别人说什么就信什么!

39631

【前端基础】JS基础学习笔记整理

HTML id 冲突 变量作用域:全局变量对局部变量 函数重载:当重载不存在,覆盖函数 区分string.replace()函数不是全局 parseInt应该包含两个参数 “this”和绑定问题...为参数设置默认值,以免你遗漏它们 for each循环是用于对象不是数组 switch语句需要点技巧 总是检查undefined前检查null 时间处理陷阱 1.区分大小写 变量名和函数名都是区分大小写...if(var1 = var2){} // 返回true。把var2赋值给var1 JavaScript是弱类型,除了switch语句中。当JavaScriptcase比较,它是非弱类型。...:条件语句关闭圆括号后换行并不是给其一个分号。...所有其它字符串都被当作是十进制。如果 numString 前缀不能解释为整数,则返回 NaN(不是数字)。

2.2K70

【JS】411- JS 进阶系列问题(47问)

当我们调用game.next("Yes").value,先前 yield 返回值将被替换为传递给next()函数参数"Yes"。...在数组中添加字符串"apple"后,长度变为2,并将从addToList函数返回。 push方法修改原始数组,如果你想从函数返回数组不是数组长度,那么应该在push item之后返回list。...我们用相同值三次调用了addFunction函数第一次调用,num等于10函数值尚未缓存,if语句num in cache返回false,else块代码被执行:Calculated!...通过将hasName设置为name,可以将hasName设置为等于传递给getName函数值,不是布尔值true。 new Boolean(true)返回一个对象包装器,不是布尔值本身。...name.length返回传递参数长度,不是布尔值true。 33. 输出什么?

2.3K50

前端之JavaScript内容

console.log(i); } 6.6 null 和 undefined null 表示值是空,一般需要指定或清空一个变量才会使用,如name=null undefined 表示当声明一个变量但未初始化时...还有就是函数无明确返回返回也是undefined 。 null 表示变量值是空,undefined 则表示只声明了变量,但还没有赋值。...,- 等一元运算符),不是一个函数,也不是一个语句。...JSON.stringify(obj1); 16、RegExp 对象 //RegExp对象 //创建正则对象方式1 // 参数1 正则表达式(不能有空格) // 参数2 匹配模式:常用g(全局匹配;找到所有匹配,不是第一个匹配后停止...// 当再次执行test()函数,将会从该索引位置处开始查找,从而找到下一个匹配。

2.6K70

【愚公系列】2023年03月 其他-Web前端基础面试题(JS_33道)

,然后更新缓存并返回值,如果找到了,直接返回查找值即可。...MDN 对闭包定义是:闭包是指那些能够访问自由变量函数,自由变量是指在函数中使用,但既不是函数参数又不是函数局部变量变量,由此可以看出,闭包=函数+函数能够访问自由变量,所以从技术角度讲,...new关键字调用时会创建一个新空间,每当创建实例函数体内部this都会指向当前 1、立刻在堆内存中创建一个新对象 2、将新建对象设置为函数this 3、逐个执行函数代码 4、将新建对象作为返回值...31、null,undefined区别? null表示一个对象被定义了,但存放了空指针,转换为数值为0。 undefined表示声明变量未初始化,转换为数值为NAN。...===被称为严格等式运算符,当两个操作数具有相同没有任何类型转换,该运算符返回true。 仅检查值相等,=是一个更严格等式判定,如果两个变量值或类型不同,则返回false。

89610

从此理解清楚undefined与null

undefined和nullif语句中,都会被自动转为false,相等运算符甚至直接报告两者相等。 if (!...既然undefined和null含义与用法都差不多,为什么要同时设置两个这样值,这不是无端增加JavaScript复杂度,令初学者困扰吗?...目前,null和undefined基本是同义,只有一些细微差别。 null表示"没有对象",即该处不应该有值。典型用法是: (1) 作为函数参数,表示该函数参数不是对象。...典型用法是: (1)变量被声明了,但没有赋值,就等于undefined。 (2) 调用函数,应该提供参数没有提供,该参数等于undefined。...(3)对象没有赋值属性,该属性值为undefined。 (4)函数没有返回,默认返回undefined

11920

前端学习笔记之JavaScript

console.log(i); } null和undefined null表示值是空,一般需要指定或清空一个变量才会使用,如 name=null; undefined表示当声明一个变量但未初始化时...还有就是函数无明确返回返回也是undefined。 null表示变量值是空,undefined则表示只声明了变量,但还没有赋值。 还不明白,上图吧! ? ?...,- 等一元运算符),不是一个函数,也不是一个语句。...JSON.stringify(obj1); RegExp对象 //RegExp对象 //创建正则对象方式1 // 参数1 正则表达式(不能有空格) // 参数2 匹配模式:常用g(全局匹配;找到所有匹配,不是第一个匹配后停止...// 当再次执行test()函数,将会从该索引位置处开始查找,从而找到下一个匹配。

90730

JavaScript 进阶 - 第1天

/assets/scope.png)] 作用域链本质上是底层变量查找机制,函数被执行时,会优先查找当前函数作用域中查找变量,如果当前作用域查找不到则会依次逐级查找父级作用域直到全局作用域,如下代码所示...foo(); fn(); // 1 总结: 闭包:一个作用域有权访问另外一个作用域局部变量, 好处:可以把一个变量使用范围延伸 闭包本质仍是函数,只不是函数内部返回...总结: 变量未声明即被访问时会报语法错误 变量声明之前即被访问,变量值为 undefined let 声明变量不存在变量提升,推荐使用 let【也有人认为具有提升但是不赋值不能使用】 变量提升出现在相同作用域当中...,参数默认值为 undefined 调用函数没有传入对应实参,参数默认值被当做实参传入 动态参数 arguments 是函数内部内置伪数组变量,它包含了调用函数传入所有实参。...()); 总结: 箭头函数属于表达式函数,因此不存在函数提升 箭头函数只有一个参数可以省略圆括号 () 箭头函数函数体只有一行代码可以省略花括号 {},并自动做为返回值被返回 箭头函数中没有

78720

JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)

如果 pattern 是正则表达式,不是字符串,则必须省略该参数。 返回值 一个新 RegExp 对象,具有指定模式和标志。...如果参数 pattern 是正则表达式不是字符串,那么 RegExp() 构造函数将用与指定 RegExp 相同模式和标志创建一个新 RegExp 对象。...\xxx 查找以八进制数 xxx 规定字符。 \xdd 查找以十六进制数 dd 规定字符。 \uxxxx 查找以十六进制数 xxxx 规定 Unicode 字符。...像 String.toUpperCase() 这样方法,返回是全新字符串,不是修改原始字符串。...全局对象是作用域链头,还意味着顶层 JavaScript 代码中声明所有变量都将成为全局对象属性。 全局对象只是一个对象,不是类。既没有构造函数,也无法实例化一个新全局对象。

1.8K40

JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)

如果 pattern 是正则表达式,不是字符串,则必须省略该参数。 返回值 一个新 RegExp 对象,具有指定模式和标志。...如果参数 pattern 是正则表达式不是字符串,那么 RegExp() 构造函数将用与指定 RegExp 相同模式和标志创建一个新 RegExp 对象。...\r 查找回车符。 \t 查找制表符。 \v 查找垂直制表符。 \xxx 查找以八进制数 xxx 规定字符。 \xdd 查找以十六进制数 dd 规定字符。...像 String.toUpperCase() 这样方法,返回是全新字符串,不是修改原始字符串。...全局对象是作用域链头,还意味着顶层 JavaScript 代码中声明所有变量都将成为全局对象属性。 全局对象只是一个对象,不是类。既没有构造函数,也无法实例化一个新全局对象。

3.7K70

Conscript_const let var

ES6 规定暂时性死区和let、const语句不出现变量提升,主要是为了减少运行时错误,防止变量声明前就使用这个变量,从而导致意料之外行为。...ES6 规定,块级作用域之中,函数声明语句行为类似于let,块级作用域之外不可引用。 function f() { console.log('I am outside!')...如果确实需要,也应该写成函数表达式,不是函数声明语句。...// undefined 上面代码中,全局变量a由var命令声明,所以它是顶层对象属性;全局变量b由let命令声明,所以它不是顶层对象属性,返回undefined。...函数里面的this,如果函数不是作为对象方法运行,而是单纯作为函数运行,this会指向顶层对象。但是,严格模式下,这时this会返回undefined

37820

ES6-标准入门·变量声明与解构赋值

ES6 规定块级作用域之中,函数声明语句行为类似于 let,块级作用域之外不可引用。 块级作用域出现,实际上使得获得广泛应用立即执行匿名函数(IIFE)不再必要了。...对于函数 this,如果函数不是作为对象方法运行,而是单纯作为函数运行,this 会指向顶层对象。但是严格模式下,this 会返回 undefined。...真正被赋值是后者,不是前者。...真正被赋值是变量 baz,不是模式 foo。...,另外它们圆括号都不属于模式一部分: 第 1 行语句中,模式是取数组第 1 个成员,跟圆括号无关; 第 2 行语句中,模式是 p 不是 d; 第 3 行语句与第 1 行语句性质一致。

62420

TS 如何进行完整性检查

例如, never 类型是那些总是会抛出异常或根本就不会有返回函数表达式或箭头函数表达式返回值类型。此外,变量也可能是 never 类型,当它们被永不为真的类型保护所约束。...定义变量,可以设置变量类型为 never 类型: let foo: never; // 定义never类型变量 never 类型是任何类型子类型,也可以赋值给任何类型: let bar: string...never = (() => { throw new Error('TypeScript never'); })(); 另外,对于死循环函数或执行时总会抛出异常函数来说,函数对应返回值类型也是...如果我们忘记处理某个条件分支,TypeScript 也会警告我们(因为我们隐式返回 undefined): enum NoYes { No = 'No', Yes = 'Yes', } //@...:函数缺少结尾 return 语句,并且返回类型不包含 undefined 类型。

2K20
领券