java程序员第三课 javaScript基础&DOM

1、上节课内容回顾
* html里面form表单

* css

* javascript

2、内容补充
1、js和html两种结合方式
* 使用外部文件方式
*

2、padding:内边距
    * padding: 20px;
    * 另外一种设置方式:
    /*
        设置内边距
        按照顺时针顺序
    */
    padding:20px  40px  60px  10px;

3、js的运算符里面 == 和 ===区别
    if(i==3):数值的比较
    if(i===3):类型和值
    ** == 比较只是值,与类型无关
    ** === 比较的是类型和值

3、js的String对象
** 创建String对象
- var str = “abc”;
- var str1 = new String(“aaa”);
* 属性:length 字符串的长度

* 方法:
    ** 与html相关的方法(设置样式的方法)
        - bold() 使用粗体显示字符串。 
        - fontcolor() 使用指定的颜色来显示字符串。 
            * document.write(str.fontcolor("red"));
        - fontsize() 使用指定的尺寸来显示字符串。 
            * size 参数必须是从 1 至 7 的数字。
        - link() 将字符串显示为链接。 
            * document.write(str.link("01-内容补充.html"));
        - sub() 把字符串显示为下标。 
        - sup() 把字符串显示为上标。 

    ** 和java相似的方法(java里面也有类似的方法 split )
        - charAt() 返回在指定位置的字符。 
            * document.write(str1.charAt(7));
            * 如果没有这个字符,返回“”
        - concat() 连接字符串。 
            * document.write(str1.concat(str2));
        - indexOf() 检索字符串。 返回字符的位置,如果没有返回-1
            * indexOf() 方法对大小写敏感!
        - replace() 替换字符串
            * 传递两个参数 replace(old,new)
            * old: 要替换的部分
            * new:替换成的部分
        - split() 把字符串分割为字符串数组。 
            * var arr = str3.split("-");

        - * substr() 从起始索引号提取字符串中指定数目的字符。 
            * 两个参数
        - * substring() 提取字符串中两个指定的索引号之间的字符。 
            * var str4 = "abcdef123456";
            document.write("substr: "+str4.substr(3,5));  //def12
            ** 从第三开始,向后截取五位
            document.write("<br/>");
            document.write("substring: "+str4.substring(3,5));  //de [3,5)
            ** 从第三位开始到第五位结束,但是不包含第五位 [3,5)

4、js的Array对象
* 创建数组方式 三种
1、var arr1 = [1,2,”4”];
2、var arr2 = new Array(3);
3、var arr3 = new Array(4,5,6);
* 属性:length 设置或返回数组中元素的数目。
* 方法:
- concat():连接数组
* document.write(“concat: “+arr.concat(arr1));
- join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
* document.write(“new: “+arr2.join(“-“));
- push() 向数组的末尾添加一个或更多元素,并返回新的长度。
* //创建一个数组 arr4
var arr4 = [“aaaa”,”bbbb”,”cccc”];
//执行push方法
document.write(“length: “+arr3.push(arr4));
//执行push方法之后的值
document.write(“
”);
document.write(“new: “+arr3);
** 添加的是一个元素,如果添加数组,会把作为一个整体添加进去
- pop() 删除并返回数组的最后一个元素
* //pop方法
document.write(“


”);
var arr5 = [“tom”,”jack”,”mary”];
//输出原始值
document.write(“old:”+arr5);
//执行pop方法
document.write(“
”);
document.write(“执行pop的返回值:”+arr5.pop());
//执行pop之后数组的值
document.write(“
”);
document.write(“new:”+arr5);
- reverse() 颠倒数组中元素的顺序。
* //reverse方法
document.write(“
”);
var arr6 = [11,12,13,14];
document.write(“old:”+arr6);
//执行reverse方法
document.write(“
”);
document.write(arr6.reverse());

5、js的Date对象
* 创建Date对象
var date = new Date();

    // Date date = new Date();

* 方法:
    - toLocaleString():根据本地时间格式,把 Date 对象转换为字符串。
    - 获取年:getFullYear() 从 Date 对象以四位数字返回年份 (不使用getYear方法)
    - 月: getMonth() 从 Date 对象返回月份 (0 ~ 11) ,需要加1
    - 星期:getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6) 
        * 判断一下,如果0 ,加7,表示的星期日
    - 日:getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31) 
    - 小时 getHours()
    - 分钟:getMinutes()
    - 秒:getSeconds()

    - getTime() 返回 1970 年 1 月 1 日至今的毫秒数 
    ** 应用场景:防止浏览器缓存

6、js的Math对象
* 一些数学运算
* Math里面的方法,都是静态的方法
- ceil(x) 对一个数进行上舍入。

- floor(x) 对一个数进行下舍入。

- round(x) 把一个数四舍五入为最接近的整数 
* var a = 12.6;
    //ceil
    document.write(Math.ceil(a));
    //floor
    document.write("<br/>");
    document.write(Math.floor(a));
    //round
    document.write("<br/>");
    document.write(Math.round(a));

- random() 返回 0 ~ 1 之间的随机数 
    * //生成0-9之间的随机数
    document.write("<hr/>");
    document.write(Math.floor(Math.random()*10));

7、js的全局函数
* 不属于任何一个对象,使用直接写方法名 eval();
* 常用方法:
- eval():执行字符串里面的js代码
var str = “alert(‘123’);”;
//alert(str);
eval(str);

    - isNaN():判断当前是否是个数字
        * NaN:表示不是一个数字
        * 返回是true false
        * 如果不是数字返回 ture
        * 如果是数字返回 false

    * 字符编码,ie浏览器url编码,火狐浏览器base64编码
    - encodeURI():把字符进行编码
    - decodeURI():把字符进行解码

    - parseInt():转换类型
    * document.write(parseInt(str4)+1);

8、js的函数重载
* java里面的重载:肯定有重载,方法名相同,参数不同
* js里面 没有重载,可以通过一些其他的方式来模拟重载的效果
— js里面没有重载
- js的函数里面有一个数组arguments,这个数组用于存储传递过来的参数

* 面试题目:js里面是否存在重载?
    1、js里面不存在重载
    2、但是可以使用其他方式来模拟实现,使用arguments数组来实现模拟重载的效果

9、js的bom对象
* broswer object model: 浏览器对象模型
* 对象:
** navigator(了解):浏览器的信息
- navigator.appName;
- window.navigator.appName;
** screen(了解):屏幕的信息
- screen.width
- window.screen.width
** location(重点掌握属性href):URL 的信息
* 引入 *

    * 鼠标点击事件 onclick="js方法"

    - 属性 href 设置或返回完整的 URL。 
    1、获得url路径地址
        - location.href
    2、设置url路径地址
        //设置url地址,实现页面跳转到的地址
        function href1() {
            location.href = "01-内容补充.html";
        }

** history(三个方法):url的历史信息
    * back() 加载 history 列表中的前一个 URL 
    * forward() 加载 history 列表中的下一个 URL 

    * go() 加载 history 列表中的某个具体页面 
        * -1:上一个页面   1:下一个页面

    ** 模拟实现向上一个页面,和下一个页面
    - 创建一个页面h1.html 写超链接 到 h2.html
    - 在h2.html中写超链接到 h3.html


** window(重点):窗口对象,顶层对象
    * 方法:
    1、alert(): 在页面弹出一个提示框
        - window.alert();
    2、confirm(): 表示一个确认框
        - var aa = window.confirm("显示在提示框上的内容");
        - 有返回值,如果点击确定,返回true;点击取消,返回false

    3、prompt() 显示可提示用户输入的对话框。 
        - prompt(text,defaultText)
        ** text:显示在输入框上的内容
        ** defaultText:表示输入框的默认值
    4、open() 打开一个新的浏览器窗口 
        - window.open('url地址','','width=200,height=100')
    5、close():关闭窗口(有些浏览器不支持)

    * 实现定时器的效果
        - 每一秒,在页面上alert 123;

    * 方法:
        - setInterval(): 比如设置的是一秒,每一秒就会去执行js代码(不断的执行)
            ** setInterval("js代码",毫秒数) 
            **setInterval("add1();",毫秒数) 
        - setTimeout():比如设置的是三秒,表示三秒后去执行js代码(只会执行一次)
            ** setTimeout("js",毫秒数);

        - clearInterval(): 清除设置的setInterval()
            * setInterval()时候返回一个id
            * 想要清除 clearInterval(id);
        - clearTimeout(): 清除设置的setTimeout()
            * setTimeout()时候返回一个id
            * 想要清除 clearTimeout(id)

10、js的dom对象
* document object model 文档对象模型
** 文档:标记型文档(html、xml)
** 对象:js是基于对象,对象里面包括属性和方法。学习js提供的dom对象里面的属性和方法
** 模型:js提供的dom对象里面的属性和方法对标记型文档进行操作

**** 使用dom对象里面的属性和方法如何对标记型文档进行操作

* 要想操作标记型文档,首先要对标记型文档里面的所有内容进行封装成对象。
    **包括 标签、文本、属性

**  要想进行操作,首先必须要解析html(标记型文档)

** 解析html(标记型文档)过程:
    - 根据html的层级结构,在内存中分配一个树形结构,
    - document对象:整个文档
    - 元素对象(标签对象)element
    - 属性对象
    - 文本对象
    - 节点对象 Node:是dom里面所有对象的父对象

* DHTML介绍
    * DHTML不是一种技术,而是很多技术的简称
    * 包含:
    ** html: 封装数据
    ** css:提供了很多属性和属性值,来实现数据样式的变化
    ** javascript(专门指的是ECMAScript):提供了一些语法
    ** dom:文档对象模型,对标记型文档进行操作

11、dom的document对象
* 方法:
** getElementById()
- 通过id得到元素(标签)
- var u1 = document.getElementById(“id1”);
alert(u1.id);

** getElementsByName()
    - 通过name属性值得到元素对象(数组)
    - var a1 = document.getElementsByName("username");
    //alert(a1.length);
    //遍历数组
    for(var i=0;i<a1.length;i++) {
        var input1 =  a1[i];
        alert(input1.value);
    }
    - 获取一个标签,直接使用数组下标实现
    var a2 = document.getElementsByName("username1")[0];
    alert(a2.value);

** getElementsByTagName()
    - 通过标签的名称获取元素对象(数组)
    - //使用getElementsByTagName()返回是数组
    var a3 = document.getElementsByTagName("input");
    //alert(a3.length);
    //遍历数组
    for(var m=0;m<a3.length;m++) {
        var input2 = a3[m];
        //alert(input2.value);
    }

    - 获取一个标签,使用getElementsByTagName
    var a4 = document.getElementsByTagName("input")[0];
    //alert(a4.length);
    alert(a4.value);

** write(); 向页面输出内容,也可以输出html代码

12、window案例
* 案例开发步骤
1、创建两个页面
* 第一个页面:
** 有两个文本输入框
** 一个按钮,写一个鼠标点击事件 onclick
*鼠标点击事件: 打开一个新的页面 open()

        * 第二个页面
         ** 有一个表格 有三个字段 操作 编号  姓名
         ** 在操作里面有按钮:
         *** 点击这个按钮之后,把按钮所在行的内容赋值到第一个页面对应的文本框里面
         ** 页面关闭 close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值