美文网首页优美编程
undefined 和 null的区别

undefined 和 null的区别

作者: 小遁哥 | 来源:发表于2019-02-15 14:27 被阅读1次

    null 比undefined更安全,在实际应用中,两者的语义上面意义大于逻辑上的意义,这两个家伙很有用,为变量本身提供了两个状态。

    0

    想要理解undefined,先要理解null,null好比桌子上有一个水杯,但是水杯里没有水,而undefined表示空的水杯被拿走了。

    然后反过来想,桌子上什么都没有,放了水杯,再放水杯里加水,可以表示一个周期。

    所以在初始化一个变量时,赋值为null可读性更好。

    考虑下面的需求,如果一条数据没有,则显示暂无数据,否则展示数据。

    模板如下

    <template>
      <div id="test-vue-id">
        <template v-if="list.length > 0">
          <div v-for="(item,index) in list" :key="index">{{index}}</div>
        </template>
        <div v-else>暂无数据</div>
      </div>
    </template>
    <script>
    export default {
      name: "test_vue",
    
      data() {
        return {
          list: []
        };
      },
      mounted() {
        setTimeout(() => {
          this.list = [1, 2, 34];
        }, 1000);
      }
    };
    </script>
    

    会先显示暂无数据,再显示内容,如果将list初始为null,加上相应的逻辑判端就好了。

      <template v-if="list &&list.length > 0">
        <div v-for="(item,index) in list" :key="index">{{index}}</div>
      </template>
      <div v-if="list && list.length === 0">暂无数据</div>
    

    1

    undefined == null //true
    undefined === null // false
    

    上面两个表达式是语言层次的定义,前者表示JS允许在一些情况将两者等同处理,后者则是为了更严格的区分。

     console.log(JSON.stringify(null)); //字符串 null
      console.log(JSON.stringify(undefined)); // undefined
      console.log(JSON.parse(null)); //null
      console.log(JSON.parse("null")); //null
      // console.log(JSON.parse(undefined));//报错
      console.log(JSON.stringify([1, undefined, null])); //[1,null,null]
      console.log([1, null, undefined].join()); //1,,
    

    相关文章

      网友评论

        本文标题:undefined 和 null的区别

        本文链接:https://www.haomeiwen.com/subject/jnvpeqtx.html