zoukankan      html  css  js  c++  java
  • JavaScript

    ### 数据类型
    • 变量:var n;
    // 局部变量
    'use strict';
    let i = 1
    // 全局变量
    
    • number: jsp 不区分小数和整数
    • 字符串
    console.log('a')
    let msg = `hello 
                world`;
    let age = 3;
    // 拼接
    let msg = 'hello ${msg}';
    console.log(msg);
    // 不可变
    let s = "abc";
    console.log(s.length);
    // 大小写转换
    s.toUpperCase();
    s.toLowerCase(); 
    // 获取下标
    s.indexOf('c');
    // 子串
    s.substring(1, 3);
    
    • 布尔值
    • 逻辑运算: && || !
    • 比较运算:= == ===
      NaN===NaN -> false
    • null undefined
    • 数组:可以是不同类型数据

    :给arr.length赋值,数组大小会发生变化

    // 截取
    arr.slice(1, 2);
    
    // push
    arr.push(1);
    arr.pop();
    
    arr.unshift() // 压到头部
    arr.shift() // 弹出头部
    
    arr.sort();
    arr.reverse();
    
    for (let v of arr) {
        // ...
    }
    // concat(): 没修改原数组,返回新数组
    arr.concat([1, 2]);
    
    // join: 字符串拼接
    
    • 对象
    var 对象名 = {
        属性名: 属性值,
        属性名: 属性值,
        属性名: 属性值
    } 
    
    // 删除属性
    delete 对象名.属性名
    // 添加, 直接添加赋值即可
    
    // 判断属性 ... in ...
    
    • for
    var age = [1, 2, 3, 4];
    age.forEach(function (value) {
        // ...
    });
    
    for(var num in age) {
        // ...
    }
    
    • Map
    var map = new Map([['tom', 100], ['jack', 20]]);
    var s = map.get('jack');
    map.set('ad', 12);
    map.delete('tom');
    
    • Set: 无序不重复集合
    var set = new Set([1, 1, 2, 3]);
    set.add(2);
    set.has(3);
    
    • Iterator
    // 遍历map
    for (let x of map) {
        // ...
    }
    
    // 遍历set
    for (let x of set) {
        // ... 
    }
    

    函数

    • 可以传任意个参数
    • 可手动抛出异常
    function ...(...) {
    
        return ...
    }
    
    • argument代表传递进来的所有参数是一个数组
    • rest:获取除了已经定义的参数之外的所有参数, rest参数只能写在最后面,用...标识
    function a(x, ...rest) {
        console.log(rest);
    }
    

    变量的作用域

    • 在函数体中定义的变量不能在函数体之外使用
    • 两个函数中使用相同变量名,不冲突
    • 内部函数可以访问外部函数的成员,反之不可以
    • 内外部函数变量重名,函数先从自身查找变量名,如果找到,则屏蔽外部变量
    • alert()本身也是个window的变量
    • 仅有一个全局作用域,任何变量假设没有在函数作用域内找到,会向外查找,如果没找到,报错。
    • 减少冲突:把自己的代码放入自己定义的唯一空间内。
    var myspace = {};
    myspace.name = '...';
    myspace.add = function(a, b) {
        // ...
    }
    
    • 局部作用域:let,解决局部作用域冲突问题

    • 常量:const

    • 方法

    var myClass {
        name: '...',
        birth: 0,
        age: function() {
            return 0;
        }
    }
    myClass.name
    myClass.age();
    
    • this 默认指向调用它的对象
    • apply: 可以控制this的指向
    var myClass {
        name: '...',
        birth: 0,
        age: function() {
            return 0;
        }
    }
    myClass.name
    myClass.age();
    getAge.apply(myClass, []);
    

    内部对象

    Date

    var now = new Date();
    now.getFullYear();
    now.getMonth();
    now.getDate();
    // 获取星期
    now.getDay();
    now.getHours();
    

    Json

    • 格式:对象{}, 数组[], 键值对key:value
    • JSON 和js对象转换:
    // obj -> json
    JSON.stringify(...);
    // json -> obj
    JSON.parse('');
    

    面向对象编程: 原型对象

    var user = {
        name: "zcs",
        age: 3,
        run: function() {
            console.log(this.name + "running .");
        }
    };
    
    var zz = {
        name: "zz";
    };
    
    // 原型是user
    zz.__proto = user;
    zz.run();
    
    • class继承: ES6引入
    class student {
        constructor(name) {
            this.name = name;
        }
        hello() {}
    }
    
    class researcher extends student {
        constructor(name, achievement) {
            super(name);
            this.achievement = achievement;
        };
        showAchievement() {}
    }
    var zz = new student("zz");
    
    • 原型链:自定义 -> Object -> Object

    操作BOM对象:浏览器对象模型

    • window: 代表浏览器窗口
    • Navigator: 封装了浏览器的信息
    • screen:代表屏幕尺寸
    • location: 当前页面url信息
    host:"www.baidu.com"
    href:"https://www.baidu.com/"
    protocol:"https:"
    reload:f reload() // 刷新
    location.assign('...') // 设置新的地址
    
    • document:当前页面

    操作DOM对象:浏览器网页是一个DOM树形结构

    获取DOM节点

    // 对应css选择器
    document.getElementsByTagName('');
    document.getElementsById('');
    document.getElementsByClassName('');
    

    更新DOM节点: 操作文本、js

    id1.innerText='';
    id1.innerHTML='';
    id1.style.color='red';
    

    删除DOM节点

    • 先获取父节点,再删除父节点下所有子节点
    • 删除过程中,children节点时刻在变化
    father.remove(p1);
    

    插入节点

    • 获得空dom节点,通过innerHTML
    • 通过追加节点
    ver elem = document.getElementById('');
    ver list = document.getElementById('');
    list.append(elem);
    

    创建新节点

    var nw = document.createElement('');
    nw.id = '';
    nw.innerText = '';
    list.append(nw);
    
    var myScript = document.createElement('');
    // 创建一个标签节点, 通过键值对传递参数
    myScript.setAttribute('','');
    
    • insert
    // 在b之前插入a
    list.insertBefore('a','b');
    

    操作表单

    <form action="#" method="post">
        <span>用户名:</span><input type="text" id="username">
        <span>性别:</span><input type="radio" id="sex">
    </form>
    
    <script>
        var input_text = document.getElementById('username');
        input_text.value;
        input_text = '123';
        var b = document.getElementById('sex');
        var g = document.getElementById('sex');
        if(b.checked) console.log("boy");
        else console.log("girl");
    </script>
    
    • 提交表单
    <!-- 表单绑定提交事件 -->
    <!-- onsubmit=绑定一个提交检测的函数 true false -->
    <!-- 将结果返回给表单使用onsubmit接收 -->
    <form action="#" method="post" onsubmit="returna()">
        <span>用户名:</span><input type="text" id="username" name="username">
        <span>密码:</span><input type="text" id="password" name="password">
        <!-- 绑定事件 -->
        <button type="button" onclick="a()">提交</button>
    </form>
    
    <script>
        function a() {
            var username = document.getElementById("username");
            console.log(username.value);
            var password = document.getElementById("password");
            // md5 加密算法
            password.md5(password);
            console.log(password.value);
        }
    </script>
    

    jQuery

    • CDN 引入
    • 公式:$(select).action()
    $('#id').click(function() {
        // ...
    })
    
    • 选择器: css中的所有都有
    // 标签
    $('p').click();
    // ID选择器
    $('#id').click();
    // 类选择器
    $('.class').click();
    
    • 事件:鼠标、键盘...
    // 网页加载完毕,响应事件
    $(function() {
    // ...
    });
    
    • 操作DOM
    $('#id li[name=python]').text();
    $('#id li[name=python]').text('');
    $('#id li[name=python]').html();
    $('#id li[name=python]').html('');
    
    // css操作
    $('#id li[name=python]').css({"", ""});
    
  • 相关阅读:
    UWP开发-获取设备唯一ID
    html5加js实现本地文件读取和写入并获取本地文件路径
    C/C++杂记:运行时类型识别(RTTI)与动态类型转换原理
    C/C++杂记:深入虚表结构
    C/C++杂记:虚函数的实现的基本原理
    C/C++杂记:深入理解数据成员指针、函数成员指针
    C/C++杂记:NULL与0的区别、nullptr的来历
    细说:Unicode, UTF-8, UTF-16, UTF-32, UCS-2, UCS-4
    汉字编码:GB2312, GBK, GB18030, Big5
    ANSI是什么编码?
  • 原文地址:https://www.cnblogs.com/Hot-machine/p/13213786.html
Copyright © 2011-2022 走看看