This lesson introduces the --strictNullChecks compiler option and explains how non-nullable types differ from nullable types. It also illustrates how you can write safer code by being explicit about null and undefined in the type system. First of all…
For example you have a TS app: enum PaylerPosition { Guard, Forward, Center } interface Player { name: string; position: PlayerPosition; } let kobe = { name: 'Kobe', position: PlayerPosition.Guard }; The problem for this piece of code is that, you ca…
TypeScript本质是javascript,因此基本上js所有的功能在ts上完全可以照搬照抄过来使用.根据ts的文档,有些我觉得值得商榷的——比如null,undefined就是例子. 文档上说一个变量如果是number,boolean等基本类型,可以为null或者是undefined.在我看来,既然TS是“强语言”类型,我们应该也有理由仿效C#等强类型语言,在完全定义了某个变量是何种类型之后,初始化赋值用null还是undefined.先就决定: 1.如果变量是明确的基类型(number,…
var a=null; var b=undefined; if(a===null){ //a==null alert("a=null") }else{ alert("a=no") }//->a=null if(b===undefined){ //b==undefined alert("a=undefined") }else{ alert("a=no") }//->b=undefined null与undefined…
读了阮一峰的博客,自己总结一下,便记录一篇博客 在javacript的基本类型中,有2种基本类型,只有1个值,便是null和undefined,都表示的是"无".在一定程度上是相等的,如: 但又不完全相等: 同时,在if的判断条件中也是一致的: if(null)跟if(undefined)是同样的结果. 从定义上来看: undefined表示变量声明但未初始化时的值. null表示准备用来保存对象,还没有真正保存对象的值.从逻辑角度看,null值表示一个空对象指针. 我们可以用type…
写了个 str ="s"++; 然后出现Nan,找了一会. 收集资料如下判断: 1.判断undefined: 代码如下: <span style="font-size: small;">var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined"); }</span> 说明:typeof 返回的是字符串,有六种可能:&qu…
1997 年,IE 4.0 发布,带来的众多新特性中有一个对未来“影响深远”的 DOM API:document.all.在随后的 6 年里,IE 的市场占有率越来越高,直到 2003 年的 95%. 在这段时间里,产生了两种成千上万的页面.第一种:IE only 的页面,由于超高的市场占有率,开发人员觉得根本不需要考虑兼容性,于是直接使用 document.all,比如: document.all("foo").style.visibility = "visible&quo…
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位大侠拍砖. 总所周知:null == undefined 但是:null !== undefined 那么这两者到底有啥区别呢? 请听俺娓娓道来... null 这是一个对象,但是为空.因为是对象,所以 typeof null  返回 'object' . null 是 JavaScript 保留关…
undefined表示不存在的状态.没有定义的变量,没有定义的对象属性,没有return的函数的返回值等等都是undefined. null表示没有对象.使用上没有差别,只是根据大众的使用习惯,场合不一样. console.log(typeof null); // object console.log(typeof undefined); // undefined //声明一个变量,但是不赋值,既是null也是undefinedvar foo; console.log(foo === undef…
之前在看<JavaScript权威指南>的时候看到三个相等性比较的式子: null == undefined ;// ==>true undefined == false;// ==>false null ==false;// ==>false 对于第一个等式我默认是相等的了,就没有在意,但第二和第三个等式我觉得很奇怪,因为之前有看到过一句“下面这些值会被转换成false: undefined.null.0.-0. ' ' .NaN”,那么为什么后两个等式会不成立呢?当时看书…