随笔分类 -  JavaScript基础

1 2 3 4 5 ··· 7 下一页
摘要:try..finally try..finally 中finally 中的代码总是会在 try 之后执行,如果有 catch 的话则在 catch 之后执行。也可以将 finally 中的代码看作一个回调函数,即无论出现什么情况最后一定会被调用。 得到返回值的代码是在 finally 之前还是之后执 阅读全文
posted @ 2020-12-03 08:42 wzndkj 阅读(526) 评论(0) 推荐(0) 编辑
摘要:JavaScript 中的 && 和 || 运算符返回它们其中一个操作数的值,而非 true 或 false。在一个运算符两个操作数的情况下这比较好理解: var a = 42; var b = "foo"; a && b; // "foo" a || b; // 42 那么两个运算符三个操作数呢? 阅读全文
posted @ 2020-12-01 08:34 wzndkj 阅读(114) 评论(0) 推荐(0) 编辑
摘要:语句的结果值 var a = 3 * 6; var b = a; b; 以赋值表达式 b = a 为例,其结果值是赋给 b 的值(18),但规范定义 var 的结果值是 undefined。如果在控制台中输入var a = 42会得到结果值 undefined,而非 42 如果你用开发控制台调试过代 阅读全文
posted @ 2020-11-30 19:18 wzndkj 阅读(148) 评论(0) 推荐(0) 编辑
摘要:var a = [ 42 ]; var b = [ "43" ]; a < b; // true b < a; // false 比较双方首先调用 ToPrimitive,如果结果出现非字符串,就根据 ToNumber 规则将双方强 制类型转换为数字来进行比较 var a = [ "42" ]; v 阅读全文
posted @ 2020-11-28 14:10 wzndkj 阅读(83) 评论(0) 推荐(0) 编辑
摘要:说到 == 和 的区别,常见的误区是“== 检查值是否相等, 检查值和类型是否相等”。听起来蛮有道理,然而还不够准确。很多 JavaScript 的书籍和博客也是这样来解释的,但是很遗憾他们都错了。 正确的解释是:“== 允许在相等比较中进行强制类型转换,而 不允许。” 根据第一种解释(不准确的版本 阅读全文
posted @ 2020-11-27 15:51 wzndkj 阅读(276) 评论(0) 推荐(0) 编辑
摘要:&& 和 || 运算符的返回值并不一定是布尔类型,而是两个操作数其中一个的值。 var a = 42; var b = "abc"; var c = null; a || b; // 42 c || b; // "abc" a && b; // "abc" c && b; // null || 和 阅读全文
posted @ 2020-11-26 10:43 wzndkj 阅读(162) 评论(0) 推荐(0) 编辑
摘要:一元运算符 + 的另一个常见用途是将日期对象强制类型转换为数字 var d = new Date( "Mon, 18 Aug 2014 08:53:06 CDT" ); +d; // 1408369986000 我们常用下面的方法来获得当前的时间戳 +new Date(); // 160583729 阅读全文
posted @ 2020-11-20 10:00 wzndkj 阅读(399) 评论(0) 推荐(0) 编辑
摘要:字符串和数字之间的转换是通过 String(..) 和 Number(..) 这两个内建函数来实现的 String(42); // "42" Number('3.14'); // 3.14 String(..) 遵循前面讲过的 ToString 规则,将值转换为字符串基本类型。Number(..) 阅读全文
posted @ 2020-11-19 10:08 wzndkj 阅读(107) 评论(0) 推荐(0) 编辑
摘要:假值 以下是假值: Boolean(undefined); // false Boolean(null); // false Boolean(0); // false Boolean(NaN); // false Boolean(""); // false 假值的布尔强制类型转换结果为 false。 阅读全文
posted @ 2020-11-18 18:20 wzndkj 阅读(207) 评论(1) 推荐(0) 编辑
摘要:undefined.toString(); // TypeError: Cannot read property 'toString' of undefined null.toString(); // TypeError: Cannot read property 'toString' of nul 阅读全文
posted @ 2020-11-17 11:26 wzndkj 阅读(210) 评论(0) 推荐(0) 编辑
摘要:将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况;隐式的情况称为强制类型转换。 JavaScript 中的强制类型转换总是返回标量基本类型值,如字 符串、数字和布尔值 们能够从代码中看出哪些地方是显式强制类型转换,而隐式强制类型转换则不那么明显,通常是某些操作产生的副作用。 例如: v 阅读全文
posted @ 2020-11-16 10:41 wzndkj 阅读(90) 评论(0) 推荐(0) 编辑
摘要:创建日期对象必须使用 new Date()。可以带参数用来指定日期和时间,而不带参数的话则使用当前的日期和时间 获取当前的时间戳,通过 (new Date()).getTime()。ES5 之后也可以用更简单的 Date.now() 获取 构造函数 Error(),创建错误对象,主要是为了获得当前运 阅读全文
posted @ 2020-10-21 08:27 wzndkj 阅读(116) 评论(0) 推荐(0) 编辑
摘要:除非万不得已,否则尽量不要使用 Object()/Function()/RegExp() var c = new Object(); c.foo = 'bar'; c; // {foo: 'bar'} var d = {foo: 'bar'} d; // {foo: 'bar'} 在实际情况没有必要 阅读全文
posted @ 2020-10-20 08:20 wzndkj 阅读(94) 评论(0) 推荐(0) 编辑
摘要:Array 构造函数只带一个数字参数的时候,该参数会被作为数组的预设长度,而非只充当数组中的一个元素。这实非明智之举;一是容易忘记,二是容易出错。更为关键的是,数组并没有预设长度这个概念。这样创建出来的只是一个空数组,只不过它的 length 属性被设置成了指定的值 我们将包含至少一个 ”空单元“ 阅读全文
posted @ 2020-10-19 08:27 wzndkj 阅读(112) 评论(0) 推荐(0) 编辑
摘要:如果想要得到封装对象中的基本类型值,可以使用 valueOf() 函数 var a = new String('abc'); var b = new Number(123); var c = new Boolean(true); a.valueOf(); // 'abc' b.valueOf(); 阅读全文
posted @ 2020-10-15 08:01 wzndkj 阅读(99) 评论(0) 推荐(0) 编辑
摘要:由于基本类型值没有 .length 和 .toString() 这样的属性和方法,需要通过封装对象才访问,此时 JS 会自动为基本类型包装一个封装对象: var a = 'abc'; a.length; // 3 a.toUpperCase(); // 'ABC' 如果需要经常使用这些字符串属性和方 阅读全文
posted @ 2020-10-14 08:10 wzndkj 阅读(83) 评论(0) 推荐(0) 编辑
摘要:所有 typeof 返回值为 'object' 的对象(如数组)都包含一个内部属性,这个属性无法直接访问,一般通过 Object.prototype.toString(...) 来查看​ 数组,正则表达式,对象的内部属性[[Class]]和创建该对象的内建原生构造函数相对应 Null(),Undef 阅读全文
posted @ 2020-10-13 08:29 wzndkj 阅读(276) 评论(0) 推荐(0) 编辑
摘要:JS 的内建函数,也叫原生函数,如 String 和 Number 常用的原生函数有: String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol() var s = new Strin 阅读全文
posted @ 2020-10-12 08:17 wzndkj 阅读(99) 评论(0) 推荐(0) 编辑
摘要:JavaScript 引用指向的是值,如果一个值有 10 个引用,这些引用指向的都是同一个值,它们相互之间没有引用/指向关系。JavaScrtip 对值和引用对赋值/传递在语法上没有区别,完全根据值的类型决定。 var a = 2; var b = a; // b 是 a 的一个副本 b++; a; 阅读全文
posted @ 2020-05-18 06:45 wzndkj 阅读(206) 评论(0) 推荐(0) 编辑
摘要:NaN 和 -0 在相等比较时的表现有些特别。ES6 中新加入了一个工具方法 Object.is(..) 来判断两个值是否绝对相等,可以用来处理特殊情况 var a = 2/'foo'; var b = -3/0; Object.is(a, NaN); // true Object.is(b, -0 阅读全文
posted @ 2020-05-17 09:58 wzndkj 阅读(169) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页