zoukankan      html  css  js  c++  java
  • js实用技巧

    IIFE(立即调用函数表达式)最广泛的用途是避免污染全局作用域. 已经有很多JavaScript库和JavaScript高手正在使用这种技巧, 尤其是在最流行jQuery插件的开发者中. 你也应该把这个技巧应用在你的程序的主要文件中(main.js).

    在这个例子中, 我使用了匿名函数把所有全局作用域的变量变成了局部变量, 所以现在全局作用域中还可以定义新的变量, 不用顾忌是否会和匿名函数内的变量在变量名上发生冲突(还包括其他库或者框架):

    //所有的代码包含在立即调用函数中
    (function() {
      var firstName = "Richard";
      funtion init() {
        doStuff(firstName);
        //在这里开始插入应用程序的代码...
      }
    
      function doStuff() {
        //...
      }
    
      function doMoreStuff() {
        //...
      }
    
      //启动应用程序;
      init();
    })();

    强大的 && 和 || 表达式

    你可能在JavaScript库和JavaScript框架中已经见过它们了, 那么我们先由几个基本的例子开始:

    例子1. || (或)

    设置默认值, 通常用

    function documentTitle(theTitle) {
      if (!theTitle) {
        theTitle = "Untitled Document";
      }
    } 

    替代

    function documentTitle(theTitle) {
      theTitle = theTitle || "Untitled Document";
    }

    解析:

    • 首先, 阅读以下的"提示"框复习JavaScript是如何判断布尔值的
    • || 操作符首先从左开始判断表达式的真假, 如果为真, 马上返回左边表达式返回的值; 如果左边表达式被判断为假, 则继续判断右边的表达式, 并返回右边表达式的值
    • 如果theTitle被判断为假, 会返回右边表达式的值. 换句话说, 如果theTitle变量被判断为真, 则返回theTitle的值.
      ! 提示: JavaScript判断为假的值: null, false, 0, undefined, NaN 和 ""(空字符串). 记住像Infinity(无限大)这种 NaN 类的值是被判断为真不是假. 然而, NaN被判断为假. 除了以上这些, 其他值全部被判断为真.

      例子2. &&(并)

      不要这么做:

      function isAdult(age) {
        if (age && age > 17) {
          return true;
        } else {
          return false;
        }
      }

      替代

      function isAdult(age) {
        return age && age > 17;
      }

      解析:

      • && 操作符从左开始判断表达式, 如果左边的表达式被判断为假, 这马上返回false, 不管右边的表达式是否为真.
      • 如果左边的表达式为真, 则继续判断右边的表达式, 然后返回右边表达式结果
  • 相关阅读:
    Flutter子组件调用父组件方法修改父组件参数
    Flutter点击两次返回键退出APP
    Flutter路由跳转父级页面向子页面传参及子页面向父级页面传参
    Flutter中用ListView嵌套GridView报错异常
    前端项目统一 ESlint 规则集
    前端规范
    手写防抖(Debouncing)和节流(Throttling)
    手写promise进阶版本
    实现一个call或 apply
    实现一个JSON.stringify()
  • 原文地址:https://www.cnblogs.com/aegisada/p/4849703.html
Copyright © 2011-2022 走看看