zoukankan      html  css  js  c++  java
  • js基础语法

    js: 由三个部分组成

    1 ECMAscript5的核心 js语言
    2 BOM 浏览器对象模型 js操作浏览器,做出对应的一些效果
    3 DOM 文档对象模型 -- HTML文件

    引入方式:

    1 head标签的script标签里面(alert('xx'), confirm('xx'))
    2 body标签后者body标签下面html标签上面的script标签里面
    3 外部文件引入的方式来使用
    a 创建一个.js结尾的文件,写上咱们的js代码
    比如:alert('are you ok?');
    b 在想使用这个js代码的html文件中,head标签或者body标签下面或者上面写下面的内容
    <script src="01test.js"></script>
    <script src="js文件路径"></script>
    <script></script> 标签推荐写在body下面和html标签之间

    变量:

    var a = 10;  变量定义 var 变量名;
    var b;  只声明,没有赋值的情况下,b的值为undefined 

    number类型(整数,浮点数):

    var n = 11;
    var n2 = 11.11;
    js代码注释  // js代码
    
    查看数据类型 typeof 变量名;
        typeof n; -- number类型
        
    变量声明,但没有赋值的时候,变量的值为undefined

    string类型(字符串):

    var a = 'alexsb';  此种类型为string
    var a = new String('ss');  typeof a; -- "object"
    
    移除两端,左边,右边空格: s.trim();   s.trimLeft(); s.trimRight();
    
    var s2 = '   hello   ';
    s2
    "   hello   "
    s2.trimLeft();
    "hello   "
    
    s2.trimRight();
    "   hello"
    
    s2.trim();
    "hello"
    
    
    var value = name.charAt(index)             // 根据索引获取字符
        示例: var s = 'hello'; -- s.charAt(4); -- 'o'
        
    var value = name.substring(start,end)     // 根据索引获取子序列,切片
        示例: s.substring(1,3); -- "el"  左包右不包
    
    
    字符串拼接: + 
    
    s1
    "hello world"
    s2
    "   hello   "
    s1 + s2
    "hello world   hello   "

    布尔类型(boolean类型):

    var a = true;
    var b = false;
    typeof a; -- "boolean"

    undefined和null类型:

    undefined 变量声明了,但是没有赋值,此时这个变量是undefined类型
    null : 变量不用了,就可以给变量赋值为null, --- object类型 -- 和python的None一样

    数组(array):

    var name = [11,22,33];  typeof name; -- "object"
    
    name.length -- 得到数组长度
    
    数组常用方法:
    names[0]                        // 索引,索引也是从0开始的
    
    names.push(ele)                 // 尾部追加元素
        示例:a.push('xx'); --  [11, 22, 33, "xx"]
    var ele = names.pop()         // 尾部移除一个元素
        示例:a.pop(); -- [11, 22, 33]
    names.unshift(ele)              // 头部插入元素
        示例:a.unshift('ssss'); --  ["ssss", 11, 22, 33]
    var ele = obj.shift()             // 头部移除一个元素
        示例:a.shift(); --  [11, 22, 33]
    names.splice(index,0,ele)         // 在指定索引位置删除元素
    names.splice(从哪删(索引),删几个(个数),删除位置替换的新元素(可不写,可写多个)) 
    names.splice(index,1,ele)         // 指定索引位置替换元素
    names.splice(index,1)             // 指定位置删除元素
        示例: a.splice(1,2) --  [11, 22, 33]
            a.splice(1,1,'xx','oo','asdf'); -- [11, "xx", "oo", "asdf", 33]
    
    
    names.slice(start,end)            // 切片
        示例:a.slice(1,3);--  [22, 33]
        
    names.reverse()                  // 原数组反转
        示例:a.reverse(); -- [44, 33, 22, 11]
    names.join(sep)                   // 将数组元素连接起来以构建一个字符串
        示例: var a = ['ni','hao','ma',18]
            a.join('+'); -- "ni+hao+ma+18"
    names.concat(val,..)              // 连接数组
        示例: var a = [11,22]; var b = ['aa','bb']
        var c = a.concat(b); c -- [11, 22, "aa", "bb"]
        
    names.sort()                     // 对原数组进行排序
        很尬!
        需要自己定义规则:
            var l4 = [11.11,2,4.5,33];
            function compare(a,b){
               return a - b;  当大于0时,两个数据换位置
            };
            使用: l4.sort(compare); 升序排列

    自定义对象(dict):

    // 声明
    info = {
        name:'武沛齐',
        "age":18
    }
    
    var a = {username:'xx',password:'123'}; //可以不加引号
    typeof info;
    "object"
    
    // 常用方法
    var val = info['name']        // 获取,通过键取值必须加引号,
    info.name 也是可以的
    info['age'] = 20            // 修改
    info['gender'] = 'male'        // 新增
    delete info['age']            // 删除

    if判断:

    if (a == 1){  //判断条件写在小括号里面,大括号里面写条件判断成功后的代码内容
        console.log('1111');
    }
    else{
       console.log('222');
    }

    多条件判断

     var a = 0;
        if(a > 1){
            // console.log('1111');
            // var hhhh = document.getElementById('d1');
            // hhhh.innerText = '彭于晏';
        }else if(a<1){
    
            console.log('2222');
        }else {
            console.log('3333');
        }

    运算符

    > < == !=  >=  <=   ===  !==
    
    var a = 2;
    var b = '2';
    a == b;  true  弱等于
    a === b;  false  强等于
    a != b;  false
    a !== b;   true

    算术运算

    +  -  * / %   ++  --  
    ++ 自增 1  
    -- 自减 1
    
    var a = 2;
    a++  先执行逻辑  在+1
    ++a  先+1 在执行逻辑
    
    简单示例:
        if (++a === 4){
            console.log('xxx');
        }
        else{
            console.log('ooo');
        };

    switch判断

    var num = 200;
    switch(num++){  参数必须是数字或者得到数字的算式
        case 10:
            console.log('未成年');
            break;
        case 18:
            console.log('成年');
            break;
        case 35:
            console.log('油腻老男人');
            break;
        case 100:
            console.log('....');
            break;
            
        #上面的case条件都不成立就执行default
        default:
            console.log('太大了');
    };

    异常捕获

    try{
        console.log(xx);
    }catch(e){
        console.log(e);
    }
    // 不管有没有异常都会执行finally
    finally{
        console.log('sssss');
    }

    for循环

    for (var i=0;i<100;++i){
        console.log(i);  
    };
    
    循环数组
        var d = [11,22,33];
        for (var i in d){
            if (d[i] === 22){
                continue;  //跳出本次循环
                // break; // 结束循环
            }
            console.log(i,d[i]);
        }
        for (var i=0;i<d.length;i++){
            console.log(i,d[i]);
        };
    循环自定义对象--python字典
        for (var i in d){
            console.log(i,d[i]);  #不要用d.i来取值
        }

    while

    var a = 0;
    while(a<5){
        a++;
        if (a===2){
          continue;
        }
        console.log(a);
    }

    转化

    字符串转数字:
        var a = '11';
        parseInt(a);
        
        var a = '23abc';
        parseInt(a);   23
        var a = '11.11';
        parseFloat(a) -- 转换为浮点型
        
        var a = 'asdfabc';
        parseInt(a); -- NaN  -- not a number
        typeof NaN;  -- "number"
        NaN === NaN; -- false
        NaN == NaN; -- false
        
        
        数字转字符串
        var b = 20;
        String(b);

    普通函数

    function f1(a,b){
        return a+b;
    }
    
    执行: f1(1,2) -- 3
    
    function f1(a,b){
        return a,b;
    };
    
    f1(1,2);
    不能返回多个值:  2 如果返回多个值, 要用一个容器类型接收

    匿名函数

    var a = function (a,b){
        console.log('xxx');
    }
    
    var d = {'xx':'oo','f':function (a,b){
        console.log('xxx');
    }};
    执行:d.f(1,2);

    自执行函数: 函数后面加括号

     (function () {
            alert('自执行函数!')
        })()

    序列化: JSON

    var d = {'a':'aa','b':18};
    序列化:
        var d_json = JSON.stringify(d); //python  json.dumps(d);
        
    反序列化:
        d_json = "{"a":"aa","b":18}"
        var reverse_json = JSON.parse(d_json);  //python  json.loads()
  • 相关阅读:
    SSL 数据加密原理简述
    MQTT 协议 部分细节
    ARM汇编--汇编中符号和变量
    Kconfig 配置文件编码规则
    ARM汇编指令-STMFD/LDMFD
    python类属性和对象属性、类的普通方法和静态方法
    ARM汇编---程序获取符号的物理地址
    Spring源码分析:非懒加载的单例Bean初始化前后的一些操作
    Spring源码分析:非懒加载的单例Bean初始化过程(下)
    Spring源码分析:非懒加载的单例Bean初始化过程(上)
  • 原文地址:https://www.cnblogs.com/fdsimin/p/13219788.html
Copyright © 2011-2022 走看看