• JavaWeb学习笔记(三)JavaScript


    1、JavaScript简介

    一、什么是JavaScript

    1. Javascript:基于对象事件驱动的语言,应用于客户端
      • 基于对象:不同于java的new对象。js提供好了很多对象,可以直接使用
      • 事件驱动:html做网站静态效果,js动态效果
      • 客户端:专门指浏览器
        注:浏览器中的控制台可以调试js代码(区分大小写,html不区分)

    二、JavaScript特点

    1. 交互性:信息的动态交互
    2. 安全性:js不能访问本地磁盘的文件
    3. 跨平台性:支持js的浏览器都可以运行

    三、Java和JavaScript区别

    1. 不同公司开发的,是不用的语言
    2. Java是面向对象 ,js是基于对象的
    3. java是强类型的语言,js是弱类型的语言
    4. java需要先编译成字节码文件再执行;js只需要解析就可以执行

    四、JavaScript组成部分

    1. ECMScript
      • ECMA:欧洲计算机协会
      • 由ECMA组织指定的js的语法,语句等
    2. BOM
      • brower object model:浏览器对象模型
    3. DOM
      • document objct model:文档对象模型

    五、JavaScript和HTML的2种结合方式★★★

    1. 使用一个标签

      <script type="text/javascript">
      		//js代码,例如:
          alert("弹窗");
      </script>
      
    2. 使用script标签,引入一个外部的js文件

      <script type="text/javascript" src="1.js"> </script>
      

      注:1、这是script标签内部的代码不会被执行,所以不能再里面写代码

    六、JavaScript的原始类型和声明变量

    1. 原始类型

      • string(字符串),
      • number(数字类型),
      • boolean(true和false)
      • null:获取对象的引用,null表示对象引用为空,所有对象的引用也是Object
      • undifined:定义一个未赋值的变量
    2. 声明变量:都用var

      <script type="text/javascript">
      	var str = "abc";//string
      	var mm = 123;//number
      	var flag = true;//boolean
      	var date = new Data();//null
      	var x;//undifined
      	alert(typeof(str));
      </script>
      
    3. 查看变量类型:typeof(变量名)

    七、JavaScript语句

    1. if 判断语句:同java中的if-else语句

    2. switch语句

      switch(a){
      	case:1
      		alert("2");
      		break;
      	case:2
      		alert("2");
      		break;
      	default:
      		alert("other");
      		break;
      }	
      
      • 区别于java,js中switch支持所有的原始类型
    3. 循环语句(for,while)

      while(i>1){
      	alert(i);
      	i--;	
      }
      
      
      for(var m=0; m<=5; m++){
            alert(m);
      }
      

    八、JavaScript运算符

    • 基本操作和java相同,以下为不同的地方:
      1. 在js里面不区分整数和小数,123/1000=0.123
      2. 数字字符串:
        1. 相加的时候和java一样(“123”+1—>1231)
        2. 相减时做的是数字的相减运算(“123”-1—>122)(不是数字字符串时提示NaN)
      3. boolean类型(true会输出为1,false会输出为0)
      4. =的区别:★面试★
        1. ==比较的是值,
        2. ===比较的是值和类型
      5. 补充:直接向页面输出语句(可以输出变量、固定值、标签、代码)
    	document.write("aaaa");
    	document.write("<br/>");
    
    • 注:在输出语句时,设置标签属性的值要使用单引号

    九、JavaScript的数组★★★

    1. 三种定义方式★★★★★

      var arr = [1,2,“3”,true];//可以存放不同的数据类型
      var arr1 = new Array(5);//使用内置对象Array对象,未存放数据
      var arr2 = new Array(6,7,8);//使用内置对象Array,并存入六个元素6,7,8
      
    2. 数组的属性值:arr.length; //获取长度

    十、JavaScript的函数

    1. 三种定义方式
    • 使用到关键字function

      function 方法名(参数名称1,参数名称2,...) {
      	方法体;
      	【返回值;】
      }
      
    • 匿名函数

      var add1 = function(参数名称1,参数名称2,...){
      	方法体;
      }
      
    • 使用到js里面的内置对象:Function

    •   var add2 = new Function("参数名称1,参数名称2,...",“方法体和返回值”);
      
    1. 方法的重载:★面试题★
    • js的函数不存在重载,会调用方法名相同的最后一个方法

    • 但是可以通过用arguments数组实现模拟重载

      function add(){//所有传入的参数都会存到arguments数组中
      	if(arguments.length==2)//传入参数为2个
      			return arguments[0]+arguments[1];
      	else if(arguments.length==3)//传入参数为3个
      			return arguments[0]+arguments[1]+arguments[2];
      	else
      		return 0;
      	}
      	add(1,2);  //3
      	add(1,2,3);  //6
      	add(1,2,3,4);  //0
      
      

    十一、JavaScript的全局变量和局部变量

    • 全局变量:在script标签里面定义的一个变量,这个变量在页面中js部分都可以使用(其它的script标签也可以使用)
    • 局部变量:在方法内部定义的一个变量,只能在方法内部使用

    十二、Script标签的位置

    1. 一般放在</body>后面,以免产生对象为空的错误。因为:浏览器是顺序解析,可能还未解析到js中所使用的对象的那一行

    2、JavaScript常见对象

    注:最重要的不是记住这些对象的方法,而是学会查阅文档√√√√

    一、string对象

    1. 创建String对象:var str = “abc”;
    2. 获取其长度(属性):str.length
    3. 两类常用方法:
    • 与html相关的方法(设置数据样式的方法)

      方法解释
      bold()加粗字符串
      fontcolor(“red”)字符串颜色
      fontsize(1-7)字体大小
      link(1.html)将字符串设置为超链接到1.html
      sub()、sup()设置为下标、上标
    • 与java相似的方法

      方法解释
      str1.concat(str2)字符串连接
      charAt(i)返回指定位置的字符
      indexOf(“a”)返回a所在位置
      split(",")根据逗号“,”切分字符串,并返回一个字符数组
      replace(“a”,“A”)替换
      substr(5,3)从5开始向后截取三个字符
      substring(3,5)截取[3,5)的字符

    二、Array对象

    1. 创建数组:参考上文(三种方法)

    2. 获取其长度(属性):arr.length

    3. 常用方法:

      方法解释
      concat()拼接
      join(“-”)用“-”分割数组的每个元素(默认使用的是逗号)
      push()向数组末尾添加元素,返回新长度(添加数组时,数组整体也会被当做一个元素,长度也是+1,遍历的时候也是作为一个元素)
      pop()删除最后一个元素,返回删除的元素
      reverse()反转

    三、Date对象

    1. 获取当前时间:var date = new Date(); //Fri Apr 17 10:40:46 UTC+0800 2016

    2. 转换为习惯的格式:date.toLocaleString();

    3. 常用方法:

      方法解释
      getFullYear()
      getMonth()+ 1月(范围是0-11)
      getDate()
      getDay()星期几(0-6:周天到周六)
      getHours()、
      getMinutes()、
      getSecond()
      时分秒
      getTime()1970-1-1至今的毫秒数
      可以用于处理缓存

    四、Math对象

    1. 都是静态方法,直接使用Math.方法()

    2. 常用方法:

      方法解释
      ceil()、floor()向上取整、向下取整
      round()四舍五入
      random()0-1之间的伪随机数
      pow(x,y)x的y次方

    五、全局函数

    1. 全局函数:不属于任何一个对象,通过方法名称直接使用

    2. 常用方法:

      方法解释
      eval(str)如果字符串中有js代码,就按照js代码执行
      encodeURI()
      decodeURI()
      对字符进行编码/解码
      encodeURIComponent()
      decodeURIComponent()
      同上
      isNaN()是数字返回false,不是数字返回true
      parseInt()字符串—>整数

    3、JavaScript中的bom和dom对象

    一、bom对象

    1. bom:broswer object model(浏览器对象模型)

    2. 常用对象(使用方法:对象名.属性/方法)

      对象解释常用属性常用方法
      navigator获取客户机(浏览器)信息appName
      screen屏幕信息width
      length
      location请求url地址href:获取/设置请求的url地址
      history请求过的url地址back()
      forward()
      go(-1or1)
    3. window对象的方法★★★

    方法解释
    alter()弹窗
    confirm()★确认提示框,返回值为true和false
    prompt(显示提示内容,输入框默认值)
    open(URL,name,features)★
    close()关闭窗口提示,
    【笔试】setInterval(“js代码”,毫秒数)★每隔X毫秒就执行一次js代码
    【笔试】setTimeout(“js代码”,毫秒数)★在X毫秒之后执行js代码
    clearInterval(id)★清除setInterval设置的定时器(定时器会返回id值)
    clearTimeout(id)★清除setTimeout设置的定时器(定时器会返回id值)

    二、dom对象

    1. dom:document object model(文档对象模型)
    • 文档:专门指的是超文本标记文档
    • 对象:提供了属性和方法
    • 模型:使用属性和方法来操作超文本文档
    1. 作用:可以通过使用dom里面提供的对象,使用这些对象的属性和方法(★★★),对标记型文档进行操作
    • 对标记型文档进行操作:要想进行操作文档,首先把文档里的所以内容(包括:标签、属性、文本内容)封装成对象
    1. dom解析html的原理:
      根据html的层级结构,会在内存中分配一个树形结构

    2. DHTML

    • DHTML:多种技术综合的简称
    • 包含的技术:
      • html:封装数据
      • css:使用属性和属性值设置样式
      • dom:操作html文档
      • javascript:专门指的是js的语法语句。即ECMAScript
    1. document对象
    常用方法解释举例
    write()向页面输出内容或html代码
    getElementById()★★★通过标签id得到标签对象得到标签对象后可以通过属性输出或设置相应的值
    getElementsByName()★返回所有和name值相同的标签对象的数组
    getElementsByTagName()★返回所有和标签名相同的标签对象的数组
    1. element对象
    • element对象获取方法:通过document对象里面的方法获取

    • element对象中的常用方法:

      • getAttribute(“属性名”); //获取属性值
      • setAttribute(“属性名”,“属性值”); //设置属性的属性值
      • emoveAttribute(“属性名”); //删除属性,不能删除
    • 补充:获取列表标签下的子列表标签:唯一有效方法是getElementsByTagName()

      <ul id="ulid1">
      	<li>aaaa</li>
      	<li>bbbb</li>
      	<li>cccc</li>
      </ul>
      <spript type="text/javaspript">
      	var ull1 = document.getElementById("uliid1");
      	var lis = ull1.childNode;//返回element对象ull1下子类标签的数组(Node对象中的方法,兼容性差)
      	var lis1 = ull1.getElementsByTagName("li");//唯一有效方法
      </spript>
      
    1. Node对象
    • Node对象的属性一:

      • nodeType
      • nodeName
      • nodeValue
    • 标签、属性、文本分别对应的值

      标签属性文本
      nodeType123
      nodeName大写的标签名称属性的名称#text
      nodeValuenull属性的值文本的内容
    • Node对象的属性二

      • 父节点
        • parentNode:获取父节点
      • 子节点
        • firstChild:获取第一个子节点(兼容性差)
        • lastChild:获取最后一个子节点
      • 同辈节点
        • nextSibling::获取下一个同辈节点
        • previouSibling:获取上一个同辈节点
    1. innerHTML标签属性★★★
    • 不是dom的组成部分,但大多数浏览器都支持的属性(因此多用这个)
    • 作用:
      • 获取文本内容
      • 向标签里面设置内容(内容是html代码)
  • 相关阅读:
    .NET 4.0 System.Threading.Tasks学习笔记
    c#初学-多线程中lock用法的经典实例
    Spring3 Schedule Task之注解实现 (两次起动Schedule Task 的解决方案)
    支持向量机中的函数距离的理解
    Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法
    Sql server的Merge语句,源表中如果有重复数据会导致执行报错
    对IIS7经典模式和集成模式的理解(转载)
    VisualStudio编译项目时,提示bin目录和obj目录下的文件不能写的错误处理的解决办法
    SQL Server 全文索引介绍(转载)
    sql server全文索引使用中的小坑 (转载)
  • 原文地址:https://www.cnblogs.com/liuzhixian666/p/13829353.html
Copyright © 2020-2023  润新知