• JavaScript


    一、JavaScript写在哪里
    head:用于声明变量、函数、类型、为事件绑定处理函数
    body:调用脚本执行
    外部脚本:用于定义函数、类型(将代码封装到一个扩展名为js的文件中,然后再需要的地方引用,完成一次定义,多处引用的效果,简化了代码的维护。)
    网页弹窗:alert(...)
    开发者模式:Source---page可以打断点
    二、基本语法
    大小写敏感的语言
    强类型语言intstring集合{}数组[]
    js是弱类型语言---var类型可以接收任何赋予它的类型
    分号结尾
    
    注释:
    单行注释://
    多行注释:/*....*/
    方法注释://**
    *方法一
    *@param {string} param1这是参数1
    */
    在调用方法注释的时候就会提示参数是string类型的
    
    字符串:字符串可以用单引号也可以用双引号
    单引号只能接收char类型
    
    数据类型:
    boolean:布尔类型
    number:数字类型
    string:字符串类型
    Undefined:未定义
    Null:空对象
    Object:对象类型
    Undefined类型和Null类型都是只有一个值的数据类型,值分别是Undefined和Null
    
    查看数据类型使用typeof(param)显示param的数据类型
    
    集合
    数组:var array=[1,2,3,4,5];
    键值对:var keyValues = {"key1":"value1","key2":"value2","key3":"value3"}
    var kv = {}
    kv["a"] = "A"   kv["b"] = "B" 
    kv.c="C"         kv.d="D"
    var kv = {a:"A",b:"B"}
    var kv1 = {a:"A",b:"B"} //js对象
    var kv2 = {"a":"A","b":"B"} //json格式对象
    对象数组:就是把键值对当作数组的里面的一个元素
    
    for循环
    for(const kv of array){...}这个类似于foreach(var a in array)
    //下面是针对键值对的循环
    for(const key in kv2){
    console.log(kv2[key])
    }
    //针对数组时
    key就是数组的标,默认从0开始的0,1,2,3的索引下标
    可通过for...of来循环大的键值对,然后通过for...in来获取键值对的值
    递归的感念:方法调用自己的方法
    
    Array对象的方法
    concat()链接两个或多个数组,并返回结果
    var ar3 = arr1.concat(arr2)
    join()数组放入一个字符串,通过分隔符分隔
    var ar2Str = ar3.join(",")---将数组用“,”逗号隔开,也可以用竖线
    push()向数组末尾添加一个或多个元素,并返回新的长度
    var length = ar2.push(10)(返回的length是新数组的长度)
    reverse()颠倒数组的顺序
    var ar3 = ar1.reverse();ar3就是ar1颠倒的数组顺序
    sort()对数组进行排序
    var ar3 = ar1.sort();
    splice()删除元素,并向数组添加新元素
    splice(参数1,参数2,参数3)
    参数1:要删除的元素下标
    参数2:要删之后的几个元素(包括它自己)
    参数3:要插入的新内容
    var ar1 = [2,1,4,3,6,5]
    var ar3 = ar1.splice(2,2,7)
    splice(2,2,7)---就是删除4和3,并且插入7到删除的地方得到新数组就是ar3 = [2,1,7,6,5]
    从某个位置后面全删掉---aplice(2)就是第二位后面的元素都删掉
    
    类型转换
    var str = "9867"
    var a= parseInt(str)---字符串转换成int类型
    var b = parseFloat(str)---字符串转成float
    
    方法使用
    function myFunction(param1.param2){
    return param1+param2;
    }
    匿名方法类似C#的委托
    var fun = function (param){alert(param)}
    fun("HELLO")---使用就会弹窗,类似委托
    var sortfun = function(a,b){
    return b-a;
    }
    var ar1 = [2,1,3,4,6,8,7,9,5];
    ar1.sort(sortfun);
    ar1就会是从大到小的排列
    匿名方法定义的同时进行调用
         (function(p1,p2){
    return p1+p2
    })(1,2)-----就直接输出3了,也可以不传参数
    
    闭包
    简单理解就是子方法可以使用父方法的变量
    
    三、DOM
    DOM用于操作html文档,准确的说是操作html标签内的内容
    操作DOM对象,一般使用document关键字调用
    
    js获取元素的方法
    document.getElementById(id):根据id获取元素节点
    document.getElementsByClassName(className):根据class的值获取一组元素节点
    document.getElementsByName(name):根据name获取一组元素节点
    document.getElementsByTagName(tag):根据标签名称获取一组元素节点
    event.target.value点击自己获取自己的value
    
    注册事件
    元素注册法:onclick="clickMe()"---点击的时候触发
    onchange="changeMe()"---文本发生变化的时候触发
    对象注册法:document.getElementById(id).onchange = function(){...}
    var changeMe = function () {...}
    document.getElementById(id).onchange = changeMe
    
    动态添加标签
    var newTag = document.createElement("input");
    document.body.appendChild(newTag);
    在某个元素之前添加标签
    document.body.insertBefore(标签id)
    document.firstChild;获取第一个子元素
    document.childNodes;获取所有子节点元素
    document.removeChild();移除所有子节点元素
    
    获取元素内容
    var content = document.getElementById("标签id").innerHTML
    
    给标签赋内容
    document.getElementById("标签id").innerHTML = "<b>Hello China</b>"
    一旦用了innerHTML,标签原本的内容就没有了
    innerHTML会把标签和内容都获取
    innerText只获取到内容
    
    操作标签样式----style后面的属性使用驼峰命名法
    document.getElementById("标签id").style.color = "blue"
    document.getElementById("标签id").style.fontFamily= "Arial"
    document.getElementById("标签id").style.fontSize= "20px"
    document.querySelectorAll("#p/.p")---#p代表id/.p代表class,P是标签
    
    四、BOM(Browser Object Model)
    Bom用于操作浏览器行为
    操作BOM对象,一般使用window关键字
    alert():弹出提示对话框
    confirm():弹出确定对话框,返回bool值类型
    prompt():弹出用户输入对话框,返回输入的内容,如果取消返回null
    setInterval(code,milliseconds):计时器方法可按照指定周期(以毫秒)来调用函数、计算表达式
             code:需要执行的代码
      milliseconds:执行代码的周期
      方法会不停的调用函数,直到 clearInterval() 被调用或窗口被关闭。由setInterval() 返回计时器ID值可用作 clearInterval()方法的参数
    var setIntervalId =  setInterval(function(){
    console.log(++i)
    },1000)
    function clearTime(){
    clearInterval(setIntervalId )
    }
    setTimeout(code,milliseconds):一次性计时器方法用在指定的毫秒数后调用函数、计算表达式,使用clearTimeout来清除setTimeout
    location:浏览器地址对象
    hash:返回一个URL的锚部分
    host:返回一个URL的主机名和端口
    hostname:返回URL的主机名
    href:返回完整的URL
    pathname:返回URL路径名
    port:返回一个URL服务器使用的端口号
    protocol:返回一个URL协议
    search:返回一个URL的查询部分
    onload 页面加载完成后调用
    window.onload = function(){.....}
  • 相关阅读:
    性能测试目的和性能测试主要术语
    回数
    python求100以内的素数
    杨辉三角
    裴波那契数列
    day12_框架二sendmail.py代码
    codeforces 1435 E
    codeforces C
    codeforces 1436E
    codeforces 1435 D. Shurikens (贪心)
  • 原文地址:https://www.cnblogs.com/renleiblog/p/13328905.html
Copyright © 2020-2023  润新知