• JS的前缀知识(跟java进行比对)


    1、JS的书写位置分为行内式(不推荐)、内嵌式(少用)、外链式(推荐)
    内嵌式是在body标签下的script标签,外链式是在script标签内src引入外部js文件

    2、JS定义变量是用var,不用显示定义数据类型,数据类型分为基本数据类型和引用类型;基本数据类型分为数值类型number、字符串类型string、布尔类型boolean、空类型;
    只要用单引号或者双引号括起来的就是字符串类型,不区分单双引号;
    空类型分为null和undefined,null表示变量就是空值,是object类型,undefined表示未被赋值,是undefined类型;
    可以用typeof 变量名检测变量数据类型

    3、数据类型转换
    转数值有三种方法,Number()表示如果内容可以转换为合法数字,就转换为数值类型,否则返回Nan;parseInt()表示如果内种的头部是合法数字,将该数字转换为数值类型,否则返回Nan;parseFloat()parseInt()类似,他可以判断是否是小数。
    转字符串有两种方法,String().Stringto(),返回的结果是一样的,只是前一个需要将内容写在括号内,后一个是将内容的变量调用Stringto()方法。
    转布尔类型只有一个方法.Boolean(),是内容变量调用该方法;内容只有是false、0、Nan、undefined、null转布尔类型时返回false、其它内容全部转换为true

    4、JS的运算符和java基本一致,现罗列不一样的地方:
    ==比较内容,不考虑数据类型,===是需要考虑数据类型;
    !==这个代表不全等,表示如果数据类型不同,但是内容一样,返回的是true;
    逻辑运算符只有&&、||、!,没有&、|

    5、变量的作用域跟Java一样采用就近原则,注意的是,如果函数中定义了一个变量,而其他域包括全局也没有的话,就在全局变量自动定义该变量;如果其他域有该变量,但是没有赋值,而在函数中调用了该变量且没有赋值,直接报错

    5、条件、循环语句与Java一致,一个小的区别就是js中每条语句用换行隔开

    6、对象数据类型格式,是大括号内多个键值对

    var name = {key1:value1,key2:value}
    //如果key1在对象函数中没有,则表示创建,若有则表示修改
    //修改或者添加有两种方式
    name.key1 = 'value3'
    name['key1'] = 'value4'
    //删除键值对
    delete name.key1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    7、数组类型的格式与Java一致
    常用的方法:push()将数据追加到数组末尾,返回新数组的长度,原数组已改变
    pop()删除数组的最后一个数据,返回被删除的数据,原数组已改变
    unshift()将数据添加在数组头部,返回新数组的长度,原数组已改变
    shift()删除数组的第一个数据,返回被删除的数据,原数组已改变
    reserve()将数组反转,返回新数组
    splice()有三个参数,分别代表索引位置、删除个数、插入数据;默认值分别为0、0、不插入,这里的插入是从哪删除就从哪插入
    sort()排序,如果没有参数,就是按照字典升序排列(即按高位数字比较,相同再比较下一顺位),如果是有参,一般传入的是比较函数,按照比较函数进行排序
    join()连接,参数是连接符,将数组中的元素通过连接符连接,返回的是连接好的字符串
    concat()拼接,参数是数组,将数组参数拼接在调用数组的后面,返回拼接后的新数组
    slice()截取,两个参数,分别是首尾索引,默认值分别是0、数组长度,返回的是截取的新数组,这个是前闭后开
    indexOf(),参数是数据,返回该数据在数组中第一次出现的索引位置,如果没有,返回-1
    forEach(function(item,index,arr){…})遍历数组,依次遍历数组,根据function方法处理每个数据,没有返回值
    map(function(item,index,arr){…})映射数组,依次遍历数组,根据function方法处理每个数组,然后返回新的数组,function方法一般需要有返回值
    filter(function(item,index,arr){…})过滤数组,依次遍历数组,根据function方法过滤数据,然后返回新的数组,function方法一般是比较语句
    every(function(item,index,arr){…})判断数组,依次遍历数组,根据function方法判断所有数据,如果都符合条件,返回true,否则返回false
    some(function(item,index,arr){…})判断数组,依次遍历数组,根据function方法判断所有数据,如果有一项符合条件,返回true,否则返回false

    8、字符串的常用方法(字符串也是一种数组)
    charAt(),参数是索引值,根据索引值返回字符
    toLowerCase()返回将字符串全部换成小写的新字符串
    toUpperCase()返回将字符串全部换成大写的新字符串
    replace()两个参数,分别是被换的子字符串、新的字符串,将字符串中第一个出现的子字符串替换成新字符串,然后返回新字符串
    trim()去除首尾空格,返回新字符串
    split()参数是分隔符,将字符串按照分隔符分割,形成数组后返回
    substr()两个参数,分别是开始索引位置和长度,返回子字符串
    substring()两个参数,分别是首尾索引位置,前闭后开
    slice()两个参数,分别是首尾索引位置,前后都闭

    9、计算的常用方法(有一些方法需要用Math来调用方法)
    Math.random()从0~1随机产生小数,包括0,不包括1
    Math.round()参数是数字,返回四舍五入后的值
    Math.ceil()一个参数,返回向上取整的值
    Math.floor()一个参数,返回向下取整的值
    Math.pow()两个参数,分别代表底数、指数,返回取幂运算后的值
    Math.sqrt()一个参数,返回平方根的值,只返回正数
    Math.abs()一个参数,返回绝对值
    Math.max()多个参数,返回最大值
    Math.min()多个参数,返回最小值
    Math.PI没有参数,返回近似π
    对于random方法,如果想取0x之间的随机数,包含0和x,可以计算`Math.random()*(x+1)`,然后向下取整的方法floor,然后如果需要在yx之间取整,在上面的结果基础上加y就可以

    10、时间的常用方法
    需要先创建时间对象,赋值给一个变量,跟java类似,通过变量来调用时间方法
    var times = new Date(),如果创建时间对象时没有参数,返回的是终端的时间,如果有参数,传入的是年、月、日、时、分、秒,来进行指定时间创建对象;
    常用的方法有:
    getFullYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()、getTime()分别是获取年份、月、日、时、分、秒、星期、时间戳,其中月份中0代表1月,依次类推;星期中0代表星期日;时间戳是跟1970年1月1日0分0秒相差的毫秒数;
    另外还可以设置时间,除了getDay方法,上面的所有方法中get改为set,传入参数就可以进行时间设置

    11、BOM的操作
    获取可视窗口尺寸(即浏览器展示内容的范围,包括滚动条,是可以通过拉伸改变):
    window.innerWidth获取可视窗口的宽度
    window.innerHeight获取可视窗口的高度
    浏览器的弹出层:
    window.alert(‘提示内容’)创建一个提示窗,只有一个确定按钮,没有返回值
    window.confirm(‘提示内容’)创建一个询问窗,有确定、取消按钮,点击确定,返回true,点击取消,返回false
    window.prompt(‘提示内容’)创建一个文本窗,有确定、取消按钮,还有文本框,如果点击确定,返回的是文本框中的内容,如果点击取消,返回null
    标签页(没有返回值)
    window.open(‘地址’)在另一个标签打开该地址
    window.close()关闭当前标签页
    常见事件(没有返回值):
    window.onload = function(){}资源加载完毕后触发函数
    window.onresize = function(){}可视窗口尺寸改变时触发函数
    window.onscroll = function(){}滚动条位置改变时触发函数
    历史记录(没有返回值),就是浏览器左上角的两个方向箭头:
    window.history.back()回退上一个页面
    window.history.forward()前进下一个页面
    浏览器卷去尺寸(有返回值),即滑动滚动条时,之前的页面被隐藏的部分尺寸
    document.documentElement.scrollTop卷去的高度,在html有DOCTYPE标签时使用
    document.body.scrollTop卷去的高度,在html没有DOCTYPE标签时使用
    为了兼容,可以将这两个合并写成document.documentElement.scrollTop || document.body.scrollTop
    同样的,卷去的宽度将上面的scrollTop改成scrollLeft,其它不变
    设置滚动条位置(没有滚动条):
    window.scrollTo(),如果是两个参数,分别代表卷去的宽度和高度;如果是一个参数,这个参数是大括号括起来的方法,方法中设置卷去的宽度left、高度top、滑动方式behavior,用键值对表示

    12、定时器
    间隔定时器setInterval()、延时定时器setTimeout()都是两个参数,分别是函数、数字,其中函数表示执行动作,数字表示毫秒数;
    间隔定时器是每隔一定时间执行一次函数,延时定时器是经过一定时间后执行一次函数,此后不再执行;
    这两个函数都有返回值,返回的是在该页面中是第几个定时器,这里判断定时器不区分类型,返回值一般用于关闭定时器;
    关闭定时器有两种clearInterval()、clearTimeout(),参数是数字,代表定时器的返回值,这两个参数也是不分定时器种类,可以互相关闭

    13、DOM的基本操作
    获取页面元素的5种方式:document.getElementById()根据id、document.getElementsByClassName()根据类名、document.getElementsByTagName()根据标签名、document.querySelector()根据选择器、document.querySelectorAll()根据选择器,这些方法的参数都是用单引号括起来的对应的名称;其中根据类型、标签名的方法,里面的elements是复数,因为这个不是唯一,返回的是伪数组(即跟数组很像,但不是数组),伪数组里面包含的是匹配到的元素或者为空,document.querySelector()是返回匹配到的第一个元素,或者null,而document.querySelectorAll()返回的是伪数组,数据是匹配到的所有元素;

    操作文本内容:
    获取文本内容:元素.innerText;设置文本内容:元素.innerText = ‘新内容’
    获取超文本内容:元素.innerHTML,返回的是含有标签的div格式;元素.innerHTML = ‘新内容’,是将整个文本标签结构全部替换

    操作元素属性:
    元素分为原生属性、自定义属性;
    获取原生属性:元素.属性名;设置原生属性:元素.属性名 = ‘属性值’;
    获取自定义属性:元素.getAttribute(‘属性名’)、设置自定义属性:元素.setAttribute(‘属性名’,‘属性值’)、删除自定义属性:元素.removeAttribute(‘属性名’)
    以上方法一般不用于操作元素的类名和样式,用的是下面的方法

    操作元素类名:
    获取:元素.className、设置:元素.className = ‘新类名’

    操作元素行内样式:
    获取:元素.style.样式名、设置:元素.style.样式名 = ‘样式值’,注意如果样式名有个中划线,js中需要写成驼峰式
    这个方法只能获取行内样式,需要获取非行内样式,需要下面方法

    操作元素非行内样式(非行内样式是指style没有写在标签内的地方,一般是嵌入式):
    获取:window.getComputedStyle(元素).样式名;这个方法也可以获取行内样式,同时这个是没有设置方法

    节点操作(未加单引号的,都是获取元素后返回的值):
    document.creatElement(‘标签名称’)创建节点,不影响css的内容、父节点.appendChild(子节点)在父节点内插入节点、父节点.insertBefore(插入的子节点,前一个子节点)在子节点后面插入节点、父节点.removeChild(子节点)删除父节点内该节点、节点.remove()删除该节点、父节点.replaceChild(替换节点,被替换节点)父节点内替换节点、节点.cloneNode(boolean) 复制节点,参数默认是false,代表只复制该节点,如果是true,该节点下的子节点全部复制

    获取元素尺寸:
    元素.offsetHeight、元素.offsetWidth,获取的尺寸是内容+padding+border;元素.clientHeight、元素.clientWidth,获取的尺寸是内容+padding

    14、事件
    事件绑定的三要素:事件源、事件类型、事件处理函数;
    事件类型大致可以分为鼠标、键盘、浏览器、触摸、表单,还有其他的事件类型以及每个事件类型的各种动作非常多,这里就不详列了;
    绑定点击事件的格式:div.onclick = function(){},其中div是获取元素的返回值,onclick是点击事件类型,不同的类型换成on+类型即可;function方法可以有参数,参数一般用e替代,代表事件内容的描述的对象
    事件内容常见的描述内容如下(包括但不仅限于):
    鼠标事件一般是坐标信息:offsetX、offsetY、clientX、clientY、pageX、pageY;其中offset是触摸点相对于触发元素的位置,client是相对于可视窗口,page是相对于文档流
    键盘事件一般是按键信息:事件对象.keyCode可以获取键盘编码

    响应机制:
    如果元素在平面上是重叠的,点击重叠部分触发事件的话,最外层的元素最先捕获到,然后逐层传递到最里层,最里层捕获后进行相应动作,然后往外逐层的元素依次做动作(注意,这里是指重叠部分的最外层)
    浏览器窗口永远是最先捕获到事件,也是最后执行动作
    阻止事件传播:div.onclick = function(e){e.stopPropagation()}代表响应事件到这个元素为止,不再传播;
    事件委托:就是将本应该注册在子元素上的处理事件注册在父元素上
    方法是通过父元素的事件绑定在子元素上:ul.onclick = function(e){e.target.方法}其中e.target返回的是真正点击的元素

  • 相关阅读:
    WebStorm stylelint 自动修复
    科学计算三维可视化笔记(第六周 界面实战)
    vue2中使用quill编辑器+表格功能
    20uec++多人游戏【小球与玩家互动】
    阿里云acp云计算认证考试科目有哪些?
    【Web漏洞探索】文件上传漏洞
    【UE 网络】专用服务器和多个客户端加入游戏会话的过程,以及GameMode、PlayerController、Pawn的创建流程
    线性表的基本操作
    Linux操作系统使用及C高级编程-D11-D13结构体
    19个Web前端交互式3D JavaScript框架和库
  • 原文地址:https://blog.csdn.net/qq_29070549/article/details/125127642