• JavaScript(二)


    1.javascript简介

    JavaScript是一门编程语言,但是和java无关
    JavaScript 是脚本语言
    JavaScript 是一种轻量级的编程语言。
    JavaScript 是可插入 HTML 页面的编程代码。
    JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
    JavaScript 很容易学习。

    2.引入方式

    // 注释方法
    1.单行注释
        //
    2.多行注释
        /**/
    
    / 引入方式 /
    1.script标签内部直接书写js代码
    2.引入外部js文件
    
    /*
    结束符
    js语言的结束符号是分号
    但是你在编写js代码的时候如果不加分号,也不会报错
    alert(123);
    */
    
    # JS编写平台
    1.支持代码编写的软件
    2.浏览器直接充当编辑器使用

    3.变量声明

    在js中定义变量需要使用关键字
    
    # 在python中
    username = 'simon'
    # 在js中需要使用关键字(var let)
    var username = 'simon'
    let username = 'xc'
    定义常量
    const pi = 3.14
    """
    let是ecs6新语法,使用它可以区分全局变量和局部变量的问题
    """
    var i = 10;
    for (var i=0;i<5;i++){
        console.log(i)
    }
    i
    5
    
    var j = 10;
    for(let j=0;j<5;j++){
        console.log(i)
    }
    j
    10

    4.JS的数据类型

    数值类型(包含了我们之前在python中学习的整型和浮点型)
    字符类型
    布尔值类型
    null与undefined
    自定义对象([],{})
    内置对象
    
    # 1.如何查看数据类型
    typeof
    
    
    # 1.数值类型中的NaN
    在数据类型转换的过程中,如果转换的对象无法变成数字就会返回NaN
    
    
    # 2.字符类型
    三种定义字符串的方式
    var name = 'simon'
    var name = "simon"
    var name = `simon666`
    """
    第三种也叫    模板字符串
    var username = 'simon';
    var age = 18;
    var res = `
    my name is ${username} and my age is ${age}
    `
    res
    "
    my name is simon and my age is 18
    "
    """
    # 在js中字符串的拼接推荐使用加号
    
    
    
    # 3.布尔值
    在js中布尔值全部都是小写而python中是首字母大写
    true
    false
    # ""(空字符串)、0、null、undefined、NaN都是false。
    
    
    # 4.null与undefined
    null表示值为空
    undefined只定义了没有给过值
    
    
    # 5.对象
    # 5.1 数组
    var l = [1,2,3,4,5]  # js中的数组表现形式上跟python列表很像
    
    var l1 = [111,222,333,444,555,666]
    l1.forEach(function(data,index){
        console.log(date,index)
    })
    # 第一个是元素本身 第二个是索引值 第三个是元素来自于谁
    l1.forEach(function(data,index,arr){
        console.log(data,index,arr)
    })
    
    
    1.splice(1,2)  # 第一个起始位置  第二个是删除的元素个数
    (2) [222, 333]
    l1
    (4) [111, 444, 555, 666]
    l1.splice(0,3,666)  # 第三个参数是要添加的元素
    
    # 5.2自定义对象
    # 第一种定义方式
    var obj = {'username':'simon',"password":123}
    undefined
    typeof obj
    "object"
    obj['username']
    "simon"
    obj.username
    "simon"
    # 第二种定义方式
    var obj1 = new Object()
    undefined
    obj1
    {}
    obj1.username = 'simon'
    "simon"
    obj1.password = 123
    123
    obj1
    {username: "simon", password: 123}

    5.运算符

    var x=10;
    var res1=x++;
    var res2=++x;
    res1;
    10
    res2;
    12
    
    // 比较运算符
    # 弱等于
    5 == '5'  # js会自动转换成相同的数据类型再做比较
    # 强等于
    5 === '5'  # 不让js自动帮你转换
    
    
    // 逻辑运算符
    在python中            在js中
    and                        &&
    or                        ||
    not                         !

    6.流程控制

    """
    固定句式
        关键字(条件){子代码}
    """
    var a = 10;
    if (a > 5){
      console.log("yes");
    }else {
      console.log("no");
    }
    
    var a = 10;
    if (a > 5){
      console.log("a > 5");
    }else if (a < 5) {
      console.log("a < 5");
    }else {
      console.log("a = 5");
    }
    # 星期几是从0-6  0表示星期日
    var day = new Date().getDay();
    switch (day) {
      case 0:
      console.log("Sunday");
      break;  # 如果不写就会一致往后执行
      case 1:
      console.log("Monday");
      break;
    default:  # 没有匹配项的时候走的
      console.log("...")
    }
    
    
    b = 10
    if b > 5:
        print('yes')
    else:
        print('no')

    7.循环结构

    """
    for(条件){
        子代码
    }
    """
    var l = [111,222,333,444,555,666,777]
    for(let i=0;i<l.length;i++){
        console.log(l[i])
    }
    """
    while(条件){
        子代码
    }
    """
    var i = 0;
    while (i < 10) {
      console.log(i);
      i++;
    }
    
    """
    三元运算
    在python中
    x = 10
    res = '哈哈哈' if x > 20 else '嘿嘿嘿'
    print(res)
    
    在js中
    var a = 1;
    var b = 2;
    var c = a > b ? a : b
    //这里的三元运算顺序是先写判断条件a>b再写条件成立返回的值为a,条件不成立返回的值为b;三元运算可以嵌套使用;
    var a=10,b=20;
    var x=a>b ?a:(b=="20")?a:b;
    
    x
    10
    """

    8.函数

    # 在python定义函数
    def index(x,y):
        return x,y
    
    # 在js中
    """
    function(参数){函数体代码}
    """
    function(x,y){
        return x,y
    }
    # arguments关键字 可以获取到调用函数的时候所有的实际参数 是一个数组
    
    
    # 箭头函数
    箭头的左边是参数右边是返回值
    var f = function(v){
      return v;
    }
    // 等同于
    var f = v => v;
    
    var sum = (num1, num2) => num1 + num2;
    // 等同于
    var sum = function(num1, num2){
      return num1 + num2;  //这里的return只能返回一个值,如果想返回多个值需要自己手动给他们包一个数组或对象中
    }

    9.内置对象

    var d1 = new Date();
    console.log(d1.toLocaleString());
    
    var d = new Date(); 
    //getDate()                 获取日
    //getDay ()                 获取星期
    //getMonth ()               获取月(0-11)
    //getFullYear ()            获取完整年份
    //getYear ()                获取年
    //getHours ()               获取小时
    //getMinutes ()             获取分钟
    //getSeconds ()             获取秒
    //getMilliseconds ()        获取毫秒
    //getTime ()                返回累计毫秒数(从1970/1/1午夜)
    
    JSON对象
    # 在python中
    import json
    json.dumps()  # 序列化
    json.loads()  # 反序列化
    
    # 在js中
    JSON.stringify()  # 序列化
    JSON.parse()  # 反序列化
    
    
    RegExp对象
    # 在js中定义正则表达式有两种方式
    // 定义正则表达式两种方式
    var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
    var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;
    // 正则校验数据
    reg1.test('jason666')
    reg2.test('jason666')
    // 全局模式下
    var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/g
    undefined
    var info = 'egondsb'
    undefined
    reg2.test(info)
    true
    reg2.test(info)
    false
    
    
    reg2.test()  # 不给默认匹配的是undefined
    true
    
    var r = /undefined/
    undefined
    r.test()
    true
    r.test('undefined')
    true
    
    typeof undefined
    "undefined"

    10.BOM操作

    浏览器对象模型
    window.open('https://www.baidu.com','','height=400px,width=400px')
    window.open('https://www.baidu.com','','height=400px,width=400px,top=200px,left=200px')
    window.close()  # 关闭当前界面
    
    window.history.forward()  // 前进一页
    window.history.back()  // 后退一页
    
    window.location.href  获取URL
    window.location.href="URL" // 跳转到指定页面
    
    
    alert(123)
    confirm('你确定吗')
    prompt('写点什么吧')
    
    计时器相关
    // 3秒之后再执行函数
    // t = setTimeout(f1,3000);
    // 清除定时器
    // clearTimeout(t)
    
    // 每个3秒触发一次
    res = setInterval(f1,3000);
    // 清除定时器
    res = clearInterval(res)

    11.DOM操作

    # 查看标签
    document.getElementById('d1')  # 直接返回标签对象
    document.getElementsByClassName('c1')  # 返回的是数组
    document.getElementsByTagName('p')  # 返回的是数组
    
    # 简介查找
    parentElement            父节点标签元素
    children                 所有子标签
    firstElementChild        第一个子标签元素
    lastElementChild         最后一个子标签元素
    nextElementSibling       下一个兄弟标签元素
    previousElementSibling   上一个兄弟标签元素
    
    
    
    var aEle = document.createElement('a');
    aEle.href = 'https://www.baidu.com'
    aEle.setAttribute('username','jason')
    <a href=​"https:​/​/​www.baidu.com" username=​"jason">​</a>​
    aEle.innerText = '百度'
    dEle = document.getElementById('d1')
    dEle.appendChild(aEle)
    """
    在给标签命名的时候我们习惯使用
    xxxEle的方式
        divEle
        pEle
        aEle
    """
    
    divEle.innerHTML
    "
        <span class="c2">sss</span>
        <p class="c1">ppp</p>
    "
    divEle.innerHTML = 'hahahahahah'
    "hahahahahah"
    divEle.innerText = '<h1>111</h1>'  # 无法识别HTML并自动转换
    "<h1>111</h1>"
    divEle.innerHTML = '<h1>111</h1>'  # 可以识别并转换
    "<h1>111</h1>"
    
    
    # 获取input里面的用户数据
    inputEle = document.getElementById('d1')
    inputEle.value
    "weeqewqewqewqewewqeqw"
    inputEle.value = 'jason'
    "jason"
    
    var input1Ele = document.getElementById('d2')
    undefined
    d2.value
    "C:fakepath
    eadme.txt"
    d2.files
    FileList {0: File(69), length: 1}
    d2.files[0]  # 文件对象
    """
    with open() as f:
        pass
    """

    12.类属性操作

    divEle.classList
    DOMTokenList(3) ["c1", "bg-red", "bg-green", value: "c1 bg-red bg-green"]
    divEle.classList.add('ccc')
    undefined
    divEle.classList.remove('bg-green')
    undefined
    divEle.classList.contains('ccc')
    true
    divEle.classList.toggle('bg-green')  # 有则删除无则添加
    true
    divEle.classList.toggle('bg-green')
    false

    13.CSS样式操作

    js操作css样式统一语法
    """
    标签对象.style.属性
    """
    obj.style.backgroundColor="red"
    obj.style.margin
    obj.style.width
    obj.style.left
    obj.style.position

    14.事件

    给不同的标签绑定不同的事件:点击不同的标签可以触发不同的动作
        
    # js绑定事件的方式
    """
    标签对象.事件名 = function(){
        事件对应的具体步骤
    }
    """
    # 两种方式
    <button  onclick="f1()">按钮1</button>
    <button id="d1">按钮2</button>
    <script>
        function f1() {
            alert('按钮一被点击了')
        }
    
        var bEle = document.getElementById('d1');
        bEle.onclick = function () {
            alert('按钮2被点击了')
        }
    </script>
  • 相关阅读:
    中国石油昆仑加油卡
    157 01 Android 零基础入门 03 Java常用工具类01 Java异常 01 异常介绍 02 异常内容简介
    156 01 Android 零基础入门 03 Java常用工具类01 Java异常 01 异常介绍 01 Java常用工具类简介
    155 01 Android 零基础入门 02 Java面向对象 07 Java多态 07 多态知识总结 01 多态总结
    154 01 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 05 匿名内部类
    153 01 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 04 方法内部类
    152 01 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 03 静态内部类
    151 01 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 02 成员内部类
    150 01 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类概述 01 内部类概述
    149 01 Android 零基础入门 02 Java面向对象 07 Java多态 05 接口(重点)07 接口的继承
  • 原文地址:https://www.cnblogs.com/yangmeichong/p/14167041.html
Copyright © 2020-2023  润新知