• JavaScript


    Introduction

    注释

    // 单行注释
    /*
       多行注释1
       多行注释2
     */
    

    代码行以;结束

    引入方式

    // script 标签内直接书写
    // 通过script标签src属性添加
    <script src='xxxx.js'></script>
    

    事件:用户操作

    onclick='alter(xxx);'
    onmouserover='div1.style.display=bock'
    document.getElementById
    

    变量

    变量声明

    var # 声明全局有效的变量
    let # 声明局部有效, ES6新语法
    

    变量命名规范

    // 数字 字母 下划线 $ 组成
    // 推荐使用驼峰体
    

    声明常量

    const

    数据类型

    • 数值类型
    • 字符串
    • 对象
      • 数组 []
      • 自定义对象 {}
    • 布尔值
    • undefined
    • symbol

    注:用typeof 查看数据类型

    字符串

    方法

    .length
    .concat(value,)
    .trim
    .trimLeft
    .substring(from, to)
    .slice(start, end)
    .charAt(n)
    .indexOf(substring, start)
    .toLowerCase()
    .toUpperCase()
    .split()
    

    多行文本

    ` 多行1
      多行2
    `
    

    占位符

    var name = 'test';
    `hello ${name}?`;
    

    数组

    var a = ["abc", 123]
    

    方法

    .length
    .unshift(ele) # 头部插入元素
    .push(eld) # 尾部插入元素
    .concat(val,,..)
    .pop()
    .shift()
    .slice()
    .splice() # 删除元素,并向数组添加新元素
    .reverse()
    .sort()
    

    forEach

    arr1.forEach(function(value, index){
    console.log(value, index)
    })
    

    splice

    arr1.splice(index, howmany, add1, add2, ..)
    

    map

    var arr1 = [1, 2, 3]
    arr1.map(function(value){
    return value + 1
    })
    

    遍历元素

    for (var i=0; i < arr1.length; i++){
    console.log(a[i])
    }
    

    运算符

    算术运算符

    + - * / % ++ --
    

    比较运算符

    > >= <= != == === !==
    
    1 == '1' //弱等于
    

    逻辑运算符

    && || !
    

    赋值运算符

    = += -= *= /=
    

    流程控制

    if-else if-else

    var a = 5;
    if (a > 5) {
        xxxx;
    }else if (a < 5) {
        xxxx;
    }else {
        xxx;
    }
    

    switch

    switch (a) {
        case 0:
            xxxx;
            break;
        case 1:
            xxxx;
            break;
        default:
            xxxx;
    }
    

    for

    for (var i=0; i < 10; i++) {
        xxxx;
    }
    

    while

    while (i < 10) {
        xxxx;
        i++;
    }
    

    三元运算

    var x = a > b ? a: b
    

    函数

    function f1(a, b) {
        xxxx;
        return xxx;
    }
    

    匿名函数

    var sum = function(a, b) {
        return a + b;
    }
    

    箭头函数

    var sum = (num1, num2) => num1 + num2
    

    注:函数中可使用arguments参数,其包括传入的所有参数

    注:函数只能返回一个值,如果要返回多个,只能将其放在数组或对象中

    函数的全局变量和局部变量

    函数内部声明的变量是局部变量,在函数外部声明的变量是全局变量

    对象

    自定义对象

    var a = {'name': 'test', 'age':18}
    
    var person=new Object();
    person.name='xxx'
    

    JSON对象

    方法

    JSON.parse(str1)
    JSON.stringify(json_obj)
    

    RegExp对象

    reg1 = new RegExp('^[a-z]');
    reg2 = /^[a-z]/;
    reg2 = /^[a-z]/g; // 全局匹配
    

    Math对象

    abs
    exp
    floor
    max
    log
    min
    sqrt
    

    事件

    用户的操作

    点击,鼠标移入, 鼠标移出

    <a href='javascript:alert("a")'> 连接</a>
    

    javascript里改变class属性

    obj = getElementById('xx')
    obj.className
    

    改变元素属性

    obj[name] = value
    oDiv.style 操作的是行间样式,如果放在css中,则不能取出相应属性
    例如:oDiv.background不能修改,果果backgound定义在css中
    

    提取行间事件

    为元素添加事件

    function abc()
        {
        
        }
    var oBtn = document.getElemntById('xx')
    oBtn.onclick=abc
    

    window.onload

    当页面加载完成的时候发生

    getElementsByTagName

    获取一组元素

    全选

    window.onload=function () {
        var aDiv = document.getElementsByTagName;
    }
    
    

    ![1573828335322](file:///C:/Users/Yajun%20Ran/Documents/synchronize_folder/data_from_computer/private_data_file/learning_data_file/computer_data_file/java_script_data_file/1573828335322.png)

    this

    触发当前动作的元素

    事件

    用户的操作

    onclick 
    ondblclick
    
    onfocus
    onblur 元素失去焦点
    onchange
    onkeydown
    onkeypress 按键被按下并松开
    onkeyup 按键被松开
    onmousedown 
    onmousemove
    onmouseout
    onmouseover
    
    onselect 文本框被选中
    onsubmit 
    

    绑定方式

    方式1.

    <div id="d1" onclick="changeColor(this);">点我</div>
    

    方式2.

    <div id="d2">点我</div>
    <script>
      var divEle2 = document.getElementById("d2");
      divEle2.onclick=function () {
        this.innerText="呵呵"; # this 是实参,表示触发事件的当前元素
      }
    </script>
    

    改变元素属性

    obj[name] = value
    oDiv.style 操作的是行间样式,如果放在css中,则不能取出相应属性
    例如:oDiv.background不能修改,果果backgound定义在css中
    

    
    

    window.onload

    当页面加载完成的时候发生

    BOM

    window对象

    window.close()
    window.open()
    window.innerHeight
    window.innerWidth
    

    history对象

    history.forward()
    history.back()
    

    location对象

    location.href # 获取当前url
    location.href='xx' 跳转到指定页面
    location.reload() 重新加载
    

    弹出框

    • alert
    • confirm
    • prompt

    计时器相关

    function func() {
            alert(123)
        }
        function show() {
            var t = setInterval(func,3000);  // 每隔三秒钟执行一次
            function inner() {
                clearInterval(t)
            }
            setTimeout(inner,9000) // 9秒后停止
        }
        show()
    

    DOM

    Document Object Model

    当页面被加载时,浏览器会创建页面的文档对象。

    JavaScript可以通过DOM创建动态的HTML:

    • 改变页面中的HTML元素
    • 改变页面中元素的属性
    • 改变元素CSS样式
    • 使元素对事件做出反应

    标签查找

    直接查找

    document.getElementById
    document.getElementsByClassName
    document.getElementsByTagName
    

    间接查找

    parentElement
    children
    firstElementChild
    lastElementChild
    nextElementSibling
    previousElementSibling
    

    节点操作

    创建节点

    var divEle = document.createElement('div');
    

    添加节点

    somenode.appendChild(newnode)
    somenode.insertBefore(newnode, 某个节点)
    

    删除节点

    somenode.removeChild(要删除的节点)
    

    节点属性

    divEle.innerText
    

    设置节点属性

    divEle.innerText = '1';
    divEle.innerHTML='<p>2</p>'
    
    diveEle.setAttribute('age', 18) # 设置自定义属性
    

    删除属性

    divEle.removeAttribute('age') 
    

    节点value

    elementNode.value, 适用于一下标签

    .input
    .select
    .textarea
    

    class操作

    className 获取所有样式类名
    classList.remove(cls)
    classList.add
    classList.contains(cls)
    classList.toggle(cls)
    

    css操作

    obj.style.margin
    obj.style.width
    obj.style.left
    obj.style.position
    
    obj.style.marginTop
    obj.style.borderLeftWidth
    obj.style.zIndex
    

    jQuery

    jQuery对象

    jQuery对象就是通过jQuery包装DOM对象后产生的对象。

    var $variable = jQuery对象
    $variable[0] // jQuery对象转成DOM对象
    

    查找标签

    $('#id') // id选择器
    $('tagName') // 标签选择器
    $('.cl) // class选择器
    $('div.cl') // 找到有cl类的div标签
    $('#id, .className, tagName') // 组合选择器
    $('x y')
    $('x > y')
    $('x + y') // 毗邻选择器
    $('x ~ y') // 兄弟选择器
    
  • 相关阅读:
    解构赋值好处
    react中给state赋予初始值(使用dva)
    popover/ToolTip设置在root标签外面,如何设置样式-antd
    判断对象为空的情况
    HTML、XHTML、XML和HTML5之间的联系与区别
    innerHTML、innerText、outerHTML和value的区别
    JS面向对象经典题目(一)
    js中apply、call和bind的区别
    react的TodoList增删改
    JS原生addClass、removeClass实现
  • 原文地址:https://www.cnblogs.com/1012zlb/p/11890790.html
Copyright © 2020-2023  润新知