05 2020 档案
摘要:/** * TS 数组和 JS 数组是一样的 * 变量提示,const numberArr: number[] */ const numberArr = [1, 2, 3]; const arr: number[] = [1,2,3]; const stringArr: string[] = ['a
阅读全文
摘要:// JS 中定义函数的方式 function hell(){} const hello1 = function(){} const hello2 = () => {} // TS 中定义函数的方式 // 参数需要类型注解,返回值不需要 function add(first: number, sec
阅读全文
摘要:// type annotation 类型注解,我们来告诉 TS 变量是什么类型 // type inference 类型推断,TS 会自动的去尝试分析变量的类型 // 如果 TS 能够自动分析变量类型,我们就什么也不需要做了 // 如果 TS 无法分析变量类型的话,我们就需要使用类型注解 let
阅读全文
摘要:// 基础类型 null, undefined, symbol, boolean, void const count: number = 123; const teacherName: string = 'zina'; *:如果基础类型是一行的,ts 能推断出它的类型,如果是两行就不一定了 let
阅读全文
摘要:学 TypeScript 就是在学 TypeScript 的静态类型和 JavaScript 的衍生语法 const count: number = 2019; // 按照之前的理解,count 是个 number 类型的静态类型。不能变更为其他类型 count.toFixed(); // coun
阅读全文
摘要:要运行 TypeScript,需要一个 node 的运行环境, 1、安装 node,http://nodejs.cn/download/, 输入 node -v, npm -v 能争取输出版本好, node 安装就没有问题了 2、配置 vsCode,打开 Code - Preferences - S
阅读全文
摘要:demo.js function demo(data) { return Math.sqrt(data.x ** 2 + data.y ** 2); } demo(); demo.ts function tsDemo(data:{x: number, y: number}) { return Mat
阅读全文
摘要:TypeScript 是 JavaScript 的超集,正因为它是建立在 JavaScript 上的一门语言,TypeScript 把其他语言中的一些精妙的语法带入到了 JavaScript 之中,从而把 JS 带入到了一个新的高度,在 TS 里面可以使用各种 JS 之外的扩展语法,同时 TS 对面
阅读全文
摘要:JavaScript 引用指向的是值,如果一个值有 10 个引用,这些引用指向的都是同一个值,它们相互之间没有引用/指向关系。JavaScrtip 对值和引用对赋值/传递在语法上没有区别,完全根据值的类型决定。 var a = 2; var b = a; // b 是 a 的一个副本 b++; a;
阅读全文
摘要:NaN 和 -0 在相等比较时的表现有些特别。ES6 中新加入了一个工具方法 Object.is(..) 来判断两个值是否绝对相等,可以用来处理特殊情况 var a = 2/'foo'; var b = -3/0; Object.is(a, NaN); // true Object.is(b, -0
阅读全文
摘要:JavaScript 有一个常规的 0 和一个 -0 var a = 0/-3; // -0 var b = 0*-3; // -0 对负零进行字符串转化会返回 0; (-0).toString(); // 0 -0 + ''; // 0 String(-0); // 0 JSON.stringif
阅读全文
摘要:熟悉传统语言(C)的开发人员可能都遇到过编译错误(compiler error)或者运行时错误(runtime exception),例如 “除以0”。然后在 JavaScript 中上例的结果为 Infinity var a = 1/0; // Infinity var a = -1/0; //
阅读全文
摘要:如果数学运算的操作数不是数字类型或者无法解析为常规的十进制或十六进制数字,就无法返回一个有效的数字,这种情况下返回值为 NaN。NaN 意指 “不是一个数字”,这个名字容易引起误会,“无效数值” “失败数值” 或者 “坏数值” 可能更准确些。 var a = 2 / 'foo'; // NaN ty
阅读全文
摘要:undefined 类型只有一个值,即 undefined。 null 类型也只有一个值,即 null。它们既是类型也是值。null 指空值,undefined 指没有值或者: undefined 指从未赋值 null 指曾赋过值,但是目前没有值 null 是关键字,不是标识符,不能将其当作变量来使
阅读全文
摘要:数字的呈现方式决定了 “整数” 的安全值范围远远小于 Number.MAX_VALUE(1.798e+308)。 能够被安全呈现的最大整数是: 2^53 - 1,即 9007199254740991,在 ES6 中被定义为 Number.MAX_SAFE_INTEGER。 最小整数 -9007199
阅读全文
摘要:二进制浮点数最大的问题是会出现如下的情况: 0.1+0.3 0.3; // false 从数学角度来说,上面的条件判断应该为 true,可结果为什么是 false 呢? 简单来说,二进制浮点数中的 0.1 和 0.2 并不是十分精确,它们想加的结果并非刚好等于 0.3,而是一个比较接近的数字,0.3
阅读全文
摘要:JS 中的数字常量一般用十进制表示 var a = 42; var b = 42.3 数字前面的 0 可以省略 var a = 0.42 var b = .42 小数点后小数部分最后面的 0 也可以省略 var a = 42.0; var b = 42.; 特别大和特别小的数字默认用指数格式显示,与
阅读全文
摘要:字符串经常被当成字符数组,但 JS 中的字符串和字符数组并不是一回事 var a = 'foo'; var b = ['f', 'o', 'o'] a.length; // 3 b.length; // 3 a.indexOf('o'); // 1 b.indexOf('o'); // 1 var
阅读全文
摘要:有时候需要将类数组(一组通过数字索引的值)转换成真正的数组,这一般通过数组工具函数来实现,例如,一些 DOM 查询操作会返回 DOM 元素列表,它们并非真正意义的数组,但十分类似。另一个例子是通过 arguments 对象(类数组)将函数的参数当作列表来访问 工具函数 slice(...) 经常用于
阅读全文
摘要:1、和其他强类型语言不同,JS中数组可以容纳任何类型的值 var a = [1, '2', [3]] 2、数组声明后,不需要预先设定大小 var a = []; a.length; // 0; a[0] = 1; a[1] = '2'; a.length; // 2 3、delete 运算符可以将单
阅读全文
摘要:该安全防范机制对在浏览器中运行的 JavaScript 代码来说还是很有帮助的 检查全局变量是否已被声明 在程序中使用全局变量 DEBUG 作为调试模式的开关。在输出调试信息到控制台之前,检查变量是否已被声明。顶层的全局变量声明 var DEBUG = true 只在 debug.js 文件中才有,
阅读全文