zoukankan      html  css  js  c++  java
  • js变成一些基本规范(温故而知新,顺便发个文章)

    //基本技巧
    //尽量少用全局变量
    myglobal = 'hello';    //反模式
    console.log(myglobal)
    console.log(window.myglobal)
    console.log(window['myglobal'])
    console.log(this.myglobal)
    
    function sum(x,y){
    result = x + y;
    return result;
    }
    
    function foo(){
    var a = b = 0;    //不要这么写,拒绝链式赋值
    }
    //代码移植的时候,全局变量会非常危险
    
    
    //用var声明的变量不能用delete删除
    
    var gvar = 1;
    gnovar = 2;
    (function(){
    fromFuncVar = 3;
    })();
    
    console.log(delete gvar);    //false
    console.log(delete gnovar); //true
    console.log(delete fromFuncVar); //true
    
    console.log(gvar);    //1
    //console.log(gnovar);    //undefined
    //console.log(fromFuncVar);    //undefined
    
    //访问全局变量的名字叫window,也可以自己定义,以防万一
    var glob = (function(){
    return this;
    })();
    
    
    //单一var模式
    function func(){
    var a,
    b,
    sum = a + b;
    }
    
    //变量提升
    myname = 'xudy'
    function func2(){
    alert(myname);    //undefined    //等同于var myname = undefined;
    var myname = 'lpf';
    alert(myname);    //myname;
    }
    
    func2();
    
    //for循环注意事项
    var arr = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]
    var d1 = new Date().getTime()
    for(var i = 0; i < arr.length; i++){    //这么写的坏处就是,每次循环都要访问对象的长度,有点慢
    console.log(arr[i])
    }
    console.log('------------' + (new Date().getTime() - d1));    //6毫秒
    
    d1 = new Date().getTime()
    for(var i = 0, length = arr.length; i < length; i++){
    console.log(arr[i]);
    }
    console.log('------------' + (new Date().getTime() - d1));    //3毫秒
    
    d1 = new Date().getTime()
    for(var i = arr.length;i--;){
    console.log(arr[i]);
    }
    console.log('------------' + (new Date().getTime() - d1));    //2毫秒 跟0比较更快
    
    //不要为内置原型添加方法
    
    //switch语句
    var inspect_me = 0,
    result = '';
    
    switch(inspect_me){
    case 0:
    result = 'hero';
    break;
    case 1:
    result = 'xudy';
    default: 
    result = 'unknow';
    }
    
    //避免隐士类型转换,尽量用 === !===
    //避免使用eval
    
    //parseint的数值约定
    var month = '06',
    year = '09';
    
    console.log(parseInt(month));
    console.log(parseInt(month, 10));
    console.log(parseInt(year));    //书上说会转成0,但是本人操作还是9,。。。
    console.log(parseInt(year, 10));
    
    //大括号
    function func3(){
    return
    {
    name: 'xudy'
    }
    }
    
    console.log(func3())    //undefined
    //相当于
    function func3(){
    return undefined;    //所以接下来的代码并不会执行到
    {
    name: 'xudy'
    }
    }
    
    //构造函数首字母大写
    function Person(){}
    //单词分割
    //即,函数名字,用小驼峰,变量名字用_分割
    function getName(){}
    var first_name = 'xu';
    //常量的名字要全部大写
    var PI = 3.14,
    MAX_WIDTH = 800;
    //私有属性用_
    
    //要对函数、函数参数、返回值进行注释
    
    //编写API文档
    //jsDoc toolKit
    //YUIDoc
    
     
    
     
    
     
    
     
  • 相关阅读:
    ntohs, ntohl, htons,htonl的比较和详解【转】
    Device Tree 详解【转】
    浅析Linux DeviceTree【转】
    【spring boot】spring boot 拦截器
    【jQuery】jQuery/js 判断字符串是否JSON字符串
    【java】java中的 &= 和 |= 和 ^= 的区别
    zabbix创建触发器、action,发送报警邮件
    html iframe禁用右键
    mysql数据库mysqldump方式备份
    JDK8新特性
  • 原文地址:https://www.cnblogs.com/xudy/p/6711585.html
Copyright © 2011-2022 走看看