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()
  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/fdsimin/p/13219788.html
Copyright © 2011-2022 走看看