JS的不常见写法

更新日期: 2019-04-22阅读: 2.3k标签: 写法

1、声明函数并立即执行,返回全局变量,变量的值是一个对象。和声明对象异曲同工。这种算是带变量名的对象声明,不需要new 对象。

var demo = function () {

  function demo1(posterSrc, width, height) {
    
  }

  function demo2(posterSrc, width, height) {
   
  }

  return {
    demo1: demo1,
    demo2: demo2
  };
}();


2、top全局的浏览器对象,代表窗口,代表窗口的最顶级window对象,在多frame或iframe的情况下,可以使用此全局对象,声明多frame可公用的属性或者方法或者对象。


3、document有全局事件方法,oncontextmenu(鼠标右键事件),鼠标单击事件,事件流式从document对象上往下流,向下分发,全局的事件监听都可以通过此对象,重写事件的监听函数。


4、在html文档中动态插入内容

 <div id="playbutton" class="vod-ui-button">
    <script>
      document.write(i18n.text('play'))
    </script>
 </div>


5、Javascript不能直接读取本地文件,针对工程内配置文件的读写,可以将配置文件定义为json,通过网络加载解析,达到读取本地文件的同样的效果。


6、字符串转int, float函数: parseInt()  parseFloat()


7、直接执行函数

(function(){

})();

(function(win){

})(window);

// 在function前添加+/-/!/~单目运算符,为了执行该函数,bootstrap框架的js有这种写法
+function(){
   console.log(1111);
}()

// 甚至可以这样,将函数定义变成了表达式的形式,解析器就会自动执行函数
0 * function(){
   alert(1);
}();


8、使用+将字符串转为number

var str = "89";
var num = +str


9、js中的这种写法

Object.defineProperty(t, "__esModule", {
     "value": !0
});

!0 = true , !1 = false


10、覆盖window/document提供的对象,对window对象实施代理,譬如mock就是通过覆盖window的XMLHttpRequest来实现对异步请求的拦截。js可以动态添加/修改对象的属性和方法,这一能力对修改浏览器提供的对象将大大的有用武之地。


11、java虚拟机的加载机制不允许外部同名类替换系统JRE提供的核心类库中的类,但js没有这一限制,app代码可以提供js来置换宿主提供的原生对象。


链接: https://www.fly63.com/article/detial/3013

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!