zoukankan      html  css  js  c++  java
  • JavaWeb之javaScript

    JavaScript

    JavaScript

    js简介

    • js是基于对象和事件驱动语言(脚本)
      • 基于对象,提供了很多对象,可以直接使用
      • 事件驱动,动作触发时,要执行的功能,可以理解为“监听器”
    • js特性
      • 交互性,数据信息的交互
      • 安全性,js本身是不能访问客户端本地磁盘的
      • 跨平台,通过浏览器实现跨平台

    JavaScript结构

    • ECMAScript
      • ECMA:欧洲计算机协会
      • script
    • BOM
      • browser object model
      • 浏览器对象模型
    • DOM
      • document object model
      • 文档对象模型

    js的使用

      • JavaScript与HTML结合使用
      • 使用方式
        • 使用script标签
        • 导入script文件
      • 如果在script标签中导入js文件,就不能在此标签中写js代码
    • js的原始类型
      • string
        • 字符串
        • var str = "hello"
      • number
        • 数值
        • var shu = 10
        • var xiaoshu = 3.14
      • boolean
        • 布尔
        • var bool = true
      • null
        • 作用在对象身上
        • var date = new Date()
      • undifined
        • 未知的数值
      • 在js中,没有数据类型匹配,在js中定义变量或对象时,统一使用var
      • typeof工具方法,查看当前变量是什么类型的

    js语句

    • if
    • switch
    • for
    • while
    • do...while

    js运算符

    • 大部分和Java一样 ~(-……-)||~
    • 与Java不同的地方
      • 整数区别:Java整数有取整现象,但是js中不存在(js没有数据类型)
      • 字符串区别:在Java中使用字符串‘+’操作,字符串连接,js一样。但是在使用‘-’运算符时,Java会报错,js:NaN(表示不是一个数字)
      • 布尔区别:在js中true可以理解成一切非零值,false理解成零值,但是在Java中不可以,Java是强类型语言,类型不同不能比较
      • ‘==’和‘===’的区别,在js中‘===’需要判断类型是否相同,类型相同后继续比较数值是否相等,而Java中,根本就没有三个等号啊,秋梨膏

    js中的数组

    • Java中的数组 int[] arr = new int[10]
    • js中的数组 var arr=[10,"hello",3.14]        var arr = new Array(3,4,5)
    • 常用方法
      • join(String):将数组中的每个元素与指定参数相连接,形成一个字符串
      • push():将指定参数数据添加到数组的尾部
      • pop():将数组的最后尾部数据弹出
      • reverse():将数组的数据翻转

    js中的函数

    • 在定义函数的时候需要使用关键字
    • function函数名称(参数列表){函数体;返回值;}
    • 参数列表中的每个形参是不需要指定var

    js中的String对象

      • js中的字符串与Java中的String类相似
      • bold:设置字符串加粗
      • fontcolor:设置字符串颜色
      • link:设置字符串链接
      • forsize:设置字符串大小
      • sub:设置字符串下角标
      • sup:设置字符串上角标
      • 等等
    • 字符串常用操作方法
      • 大部分和Java相差不大
      • charAt():查找字符
      • indexOf():查找索引
      • split():截取
      • length():长度
      • concat():连接
      • replace():替换

    时间

    • Date表示时间
    • 也需要new Date()
    • toLocaleString()转换成本地时间
    • getFullYear():获取年
    • getMonth()+1:获取月份 -- 默认是0-11
    • getDate():获取日
    • getHours():获取时
    • getMinutes():获取分
    • getSeconds():获取秒
    • getDay():获取星期 0-6(0指星期日)
    • getTime():获取时间戳

    js中的全局函数

    • eval(String):可以将String参数以js的方式进行解析
    • encodeURL(String):对字符串进行编码
    • decodeURL(String):对编码进行转换成字符串
    • isNaN():判断是否为一个数字
    • parelnt()类型转换

    js中的BOM

    • 什么是BOM
      • browser object model 浏览器对象模型
    • 常用操作
      • navigator:获取客户端浏览器相关信息
      • screen:获取客户端用于显示的信息,常用的是获取屏幕的分辨率
      • location:控制浏览器的URL地址栏,可以使用href属性设置页面动态地址
      • history:访问浏览器的历史记录(只限于当次使用'后退、前进、刷新')
      • 前置history.back();history.go(-1);(可以理解为前进), 后置history.forward();history.go(1);(可以理解为后退)
      • window
        • 由与window对象是js核心对象,在访问window对象下的方法时,不需要window调用
        • confirm():确认框 -- 返回值Boolean参数String
        • alert():弹窗
        • var url = prompt("提示信息","默认值") -- 返回值是获取输入框中的数据
        • open( URL , "保留参数,一般给空" , "(宽,高)" ,"Boolean 也可不给")
        • close():关闭窗口
        • opener.close():关闭关联/弹出窗口
        • close方法兼容性比较差
        • 定时器
          • setInterval(Striing,int,第三个用的少,可以不写 ) -- 循环定时器
          • setTime -- 只执行一次

    js中的DOM

      • js中的DOM对象主要针对于页面文档
      • 当页面被加载时,浏览器会将页面中的标签,生成节点对象,多个嵌套标签构成"文档树"(DOM树)
      • 整个文档对象称为:document
      • 元素对象:Element(又称为"标签对象")
      • 属性对象(id、class等等)
      • 文本对象
      • 节点对象:Node -- 是所有对象的父类
      • 常用方法
        • wrile() -- 向页面输出数据,在输出数据时,可以输出常量/变量的数据,同时也可以在数据中体现出html标签
        • getElement(标签的id) -- 通过标签id获取标签对象
        • getElementsByName(标签的name属性) -- 根据标签的名称获取标签对象 返回值:标签对象数组
        • getElementsByTagName(标签名称) -- 根据标签的名称获取标签对象 返回值:标签对象数组
      • 节点操作
        • 可以使用DOM对象来对整个文档进行操作
        • 创建节点对象
          • document.createElement("标签名") -- 属性对象
          • document.createTextNode("数据") -- 文本对象
        • 将对象添加
          • 父节点.appendChild(新节点)
        • 操作对象常用方法
          • createElement(标签名称) -- 创建标签对象节点
          • createTextNode(文本数据) -- 创建文本对象节点
        • 元素对象
          • DOM树中,每一个标签所对应的节点对象被称为"元素对象"
          • 常用方法
            • getAttribute("属性对象名称" -- 获得属性对象的值)
            • setAttribute("属性对象名称","值") -- 可以根据属性对象名修改其值
            • removeAttribute("属性对象名称" -- 根据属性对象名称删除属性对象)
        • 获取子标签
          • childNodes() -- 获取整个DOM树下所有的子标签
          • 可以使用此方法获取子节点,但是兼容性不是很好
          • 可以使用getElementsByTagName()方法来实现此功能
      • Node操作
        • 在操作节点时不知道是属于哪种类型的节点时,可以使用Node节点来进行存储
        • Node对象结构
          • nodeName
          • nodeType
          • nodeValue
        • 三种情况
          • 标签节点
            • nodeType -- 对应值:1(代表标签对象)
            • nodeName -- 标签名称(全大写形式存储)
            • nodeValue -- null
          • 属性节点
            • nodeType -- 对应值:2(代表属性对象)
            • nodeName -- 属性名称
            • nodeValue -- 属性值
          • 文本节点
            • nodeType -- 对应值:3(代表文本对象)
            • nodeName -- #text
            • nodeValue --文本内容
        • Node节点操作
          • 在DOM树结构中,可以通过制定的接地那对象获取相应结构
            • 父节点 :parentNode()
            • 子节点:firstChild()、lastChild()
            • 兄弟节点、同级节点
            • 下一个节点:nextSibing
            • 上一个节点:previousSibing
            • 注意:在ul和li结构中不能加载文本,所以在两个节点中中间提供一个文本节点
            • 添加一个子节点:appendChild()
            • 插入节点:insertBefore(newNode,oldNode)
            • 在指定节点之前,插入一个新节点,参数一新节点,参数二现有节点
            • 移除指定节点:remove()
            • 移除指定的子节点,移除节点时,不能自己移除自己的节点
            • 替换节点:replaceChild(newNode,oldNode)
            • 替换指定的节点,参数一新节点,参数二要被替换的节点
            • 克隆(复制节点)节点:cloneNode(Boolean)
            • 克隆、复制一个节点,参数为Boolean,true表示克隆
            • var clone_ul = ul.cloneNode(true);
          • getAttributeNode() -- 获取属性节点方法
      • 操作文本的方法
        • innerHTML
        • 可以解析HTML
        • innerText
        • 可以解析不能解析HTML
    如有问题,请发送邮件至buxiaqingcheng@163.com或者buxiaqingcheng@dingtalk.com
  • 相关阅读:
    整理之刷过的数据结构与算法题
    EM 算法求解高斯混合模型python实现
    C语言实现二叉树的基本操作
    scala 小结(一)
    Eclipse 配置运行Spark
    js替换字符串
    安装uni-ui
    判断当前时间的 时分 是否在一个时间段内
    vue 定时器实时刷新数据

  • 原文地址:https://www.cnblogs.com/zhenzhunaichabujiatang/p/13730576.html
Copyright © 2011-2022 走看看