JavaScript核心技术

目录

知识点概述

1 JS的函数

1.1 函数的创建方式

2 JS的对象

2.1 String对象

2.2 Date对象

2.3 Math对象

2.4 Array对象

​编辑

3 全局函数

3.1 全局变量和局部变量

3.2 全局函数的使用

4 JS事件

4.1 点击事件

4.2 改变事件

4.3 失去焦点事件

4.4 提交表单事件

5 BOM核心对象Window

5.1 与弹出框有关的方法

5.2 与打开关闭有关的方法

5.3 与定时器有关的方法

6 核心DOM模型

6.1 Document文档对象

6.2 操作Element对象的属性


知识点概述

1 JS的函数

1.1 函数的创建方式
  • 声明式:解析器会先读取函数声明,并使其在执行任何代码之前可以访问;

function fn(x,y){
    return x + y;
}
  • 匿名式:必须等到解析器执行到它所在的代码行才会真正被解释执行;

 var fn=function(x,y){
     return x + y ;
 }
  • Function 构造函数:从技术角度讲,这是一个函数表达式。一般不推荐用这种方法定义函数,因为这种语法会导致解析两次代码(第一次是解析常规ECMAScript代码,第二次是解析传入构造函数中的字符串),从而影响性能;

 //new Function(arg1,arg2...,body)
 var sum = new Function('x','y','return x + y ;')
 sum(1,2)  //3

【案例】:分别基于JS函数三种创建方式,完成数据求和操作

1、创建day03-js静态工程

2、创建demo1.html页面,定义三种JS函数

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>JS三种函数定义方式</title>
    <script type="application/javascript">
        //声明式函数
        function sum1(x,y){
            return x + y;
        };
        //匿名式函数定义
        var sum2=function (x,y) {
            return x + y ;
        }
        //函数构造器
        var sum3=new Function('x','y','return x + y ;');
        //函数调用
        var num1 =sum1(1,2);
        var num2 =sum2(3,4);
        var num3 =sum3(4,5);
        //结果打印在浏览器控制台
        console.log(num1);
        console.log(num2);
        console.log(num3);
    </script>
</head>
<body>

</body>
</html>

3、效果展示

2 JS的对象

2.1 String对象

字符串是 JavaScript 的一种基本的数据类型。string需要注意的是,JavaScript 的字符串是不可变的,String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。 字符串对象常用方法和创建方式介绍:

1. concat 拼接;
2. charAt:返回指定索引处的字符;
3. charCodeAt(0)返回指定字符的码值 (ASII码表);
4. indexOf(ch) 指定字符的位置  如果没有返回-1;
5. substring截取字符串  start:开始的索引值. end:结束的索引值  包括开始不包括结束 ;
字符串创建方式
1. 构造方法 new String(参数);  
2. 直接使用 var s= "hello";

【案例】:案例演示字符串对象常用方法

1、创建demo2.html页面

2、编写JS代码,调用字符串常用方法

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>字符串对象</title>
    <script type="text/javascript">
        var s1= new String("hello");
        var s2= "world";
        //拼接字符串
        console.log(s1.concat(s2));
        //返回指定索引处的字符
        console.log(s1.charAt(0));
        //返回指定字符的码值 (ASII码表)
        console.log(s1.charCodeAt(0));
        //指定字符的位置  如果没有返回-1
        console.log(s1.indexOf("h"));
        //截取字符串  start:开始的索引值. end:结束的索引值  包括开始不包括结束
        console.log(s1.substring(0,2));
    </script>
</head>
<body>

</body>
</html>

3、效果展示

2.2 Date对象

日期对象常用方法:

1. 将日期格式化:date.toLocaleString();
2. 得到年月日:date.toLocaleDateString();
3. 得到时分秒:date.toLocaleTimeString();
4. 得到年:date.getFullYear();
5. 得到月:date.getMonth();
6. 得到天:date.getDate();
7. 得到时:date.getHours();
8. 得到分:date.getMinutes();
9. 得到秒:date.getSeconds();

【案例】:案例演示日期对象常用方法

1、创建demo3.html页面

2、编写JS代码,调用日期对象常用方法

var date = new Date();
	document.write(date);
	document.write("<br>")
	//格式化
	document.write(date.toLocaleString())
	//年月日
	document.write("<br>")
	document.write(date.toLocaleDateString())
		document.write("<br>")
	//时分秒
	document.write(date.toLocaleTimeString())
	
	var y = date.getFullYear();
	var M = date.getMonth();
	var d = date.getDate();
	
	var h = date.getHours();
	var m = date.getMinutes();
	var s = date.getSeconds();
	document.write("<br>")
	var str = y+"-"+(M+1)+"-"+d+" "+h+":"+m+":"+s;
	document.write(str);

3、效果展示

2.3 Math对象

Math对象常用方法:

1. 向上舍入(取整):ceil(num);
2. 向下舍入(取整):floor(num);
3. 四舍五入:round(num);
4. 次幂:pow(x,y);
5. 随机数:random();

【案例】:JS代码演示数学对象(Math)常用方法

1、定义demo4.html页面

2、JS演示数学对象方法

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Math数学对象</title>
    <script>
        //求绝对值
        console.log(Math.abs(-1));
        //向上取整
        console.log(Math.ceil(3.2));
        //向下取整
        console.log(Math.floor(4.8));
        //四舍五入
        console.log(Math.round(4.2));
        console.log(Math.round(4.9));
        //获取随机数
        console.log(Math.random());
    </script>
</head>
<body>

</body>
</html>

3、效果展示

2.4 Array对象

Array数组对象常用方法:

1. concat(数组名)方法:数组的连接;
2. join(str):根据指定的字符分割数组;
3. push(arr):向数组末尾添加元素,返回数组的新的长度;
4. pop():表示删除数组中最后一个元素,返回删除的那个元素;
5. reverse():颠倒数组中的元素的顺序;

【案例】:JS代码演示Array对象常用方法

1、定义demo5.html

2、编写JS代码,演示Array对象常用方法

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Array对象</title>
    <script>
        var arr1 = ["马玉","马毅","马云","马化腾"];
        var arr2 = ["姚晨","姚明","姚笛","摇一摇"];
        //数组的连接
        document.write(arr1.concat(arr2));
        document.write("<br>");
        //根据指定的字符分割数组
        document.write(arr1.join("❤"));
        //向数组末尾添加元素,返回数组的新的长度
        arr1.push("马冬梅");
        document.write("<br>");
        document.write(arr1);
        //删除数组中最后一个元素,返回删除的那个元素
        arr1.pop();
        arr1.pop();
        document.write("<br>");
        document.write(arr1);
        document.write("<br>");
        //颠倒数组中的元素的顺序
        document.write(arr1.reverse());

    </script>
</head>
<body>

</body>
</html>

3、效果展示

3 全局函数

3.1 全局变量和局部变量

全局变量:在JavaScript标签里定义一个变量,在js部分有效。

局部变量:在方法里面定义,只有在方法里面使用有效。

【案例】:代码演示全局变量和局部变量作用范围

1、定义demo6.html页面

2、编写JS代码,演示JS变量作用访问

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>JS全局变量&局部变量</title>
    <script>
        var a=10;
        console.log("方法外输出:"+a);
        function show1(){
            var b =20;
            console.log("方法内输出:"+a);
            console.log("show方法里展示:"+b);
        }
        show1();
        console.log("show方法外展示:"+b);//这行报错,错误原因b未定义
    </script>
    <script>
        console.log("另一个标签输出:"+a); // 出结果;还是a的值;
        console.log("另一个标签展示展示:"+b);//这行报错,错误原因b未定义
    </script>
</head>
<body>

</body>
</html>

3、效果展示

3.2 全局函数的使用
  • eval():将JavaScript字符串当作脚本来执行。

【案例】:演示eval处理字符串脚本

1、定义demo7.html

2、编写JS代码,演示eval处理字符串脚本

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>eval函数</title>
    <script>
        var str = "alert(1)";
        eval(str);
    </script>
</head>
<body>

</body>
</html>

3、效果展示

  • parseInt(String,radix):将字符串转换成整数的值

【案例】:将字符串“100”转为数值类型

1、定义demo8.html页面

2、编写JS代码,将字符串“100”转为数值类型

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>parseInt函数</title>
    <script>
        var a = "100";
        document.write(a+":"+typeof(a));
        document.write("<br/>");
        //将字符串转为number类型
        var b = parseInt(a);
        document.write(b+":"+typeof(b));
    </script>
</head>
<body>

</body>
</html>

3、效果展示

  • isNaN(value):检测某个值是不是非数字。

【案例】:使用isNaN函数判断一个值是否是非数字

1、定义demo9.html页面

2、编写JS代码,使用isNaN函数判断一个值是否是非数字

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>isNaN函数</title>
    <script>
        //判断非一个数字 不是数字返回true
        var c = "10hjhjj";
        var d = isNaN(c);
        alert(d);
    </script>
</head>
<body>

</body>
</html>

3、效果展示

小结:

1. 全局变量&局部变量
    全局变量:在JavaScript标签里定义一个变量,在js部分有效。
    局部变量:在方法里面定义,只有在方法里面使用有效。
2. 全局函数
    eval():将JavaScript字符串当作脚本来执行
    parseInt(String,radix):将字符串转换成整数的值
    isNaN(value):检测某个值是不是非数字
    encodeURI(uri):将字符串编码
    decodeURI(uri)::将字符串解码

4 JS事件

JS事件是可以被JavaScript侦测到的行为,通俗的讲就是当用户与Web页面进行某些交互时,解释器就会创建响应的event对象以描述事件信息。

创建的事件有:

  • 用户点击页面上的某项内容

  • 鼠标经过特定的元素

  • 用户按下键盘的某个按键

  • 用户滚动窗口或改变窗口大小

  • 页面元素加载完成或加载失败

4.1 点击事件

鼠标点击某个对象就是点击事件

【案例】:使用鼠标单击按钮,弹出“你好”

1、定义demo11.html

2、编写JS代码触发点击事件

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>点击事件</title>
</head>
<body>
    <input type="button" value="点击" onclick="fun()">
    <script type="text/javascript">
        function fun() {
            alert("你好");
        }
    </script>
</body>
</html>

3、效果展示

4.2 改变事件

用户改变域的内容触发的事件就是改变事件。例如:用户切换了下拉选项

【案例】:定义下拉框,获取用户改变后的值

1、定义demo12.html页面

2、定义下拉框,绑定改变事件,获取用户切换下拉选项后的值

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>改变事件</title>
</head>
<body>
    <select name="education" id="edu" onchange="change()">
        <option value="小学">小学</option>
        <option value="初中">初中</option>
        <option value="高中">高中</option>
        <option value="大学">大学</option>
    </select>
    <script type="text/javascript">
        //改变事件
        function change() {
            //说明:document.getElementById("edu")作用:获取页面id="edu"的元素
            console.log(document.getElementById("edu").value);
        }
    </script>
</body>
</html>

4.3 失去焦点事件

元素失去焦点时触发的事件 例如:用户鼠标离开表单输入框后触发的事件,就是失去焦点事件

【案例】:演示用户鼠标离开输入框,弹框展示“离开了输入框”

1、定义demo13.html页面

2、编写JS代码,演示失去焦点事件

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>失去焦点</title>
</head>
<body>
<!-- 失去焦点  -->
    <input type="text" onblur="fun()">
    <script type="text/javascript">
        function fun() {
            alert("离开了输入框")
        }
    </script>
</body>
</html>

3、效果展示

【设计与开发更贴合案例】 例如;用户名校验

4.4 提交表单事件

当表单提交按钮被点击时,触发的事件就是提交表单事件

【案例】:演示通过表单提交事件,禁止表单提交操作

1、定义demo14.html页面

2、编写JS代码,实现禁止表单提交操作

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>表单提交事件</title>
</head>
<body>
    <!--提交表单事件
                调用带返回值的方法
                    返回值为boolean
                    true:表示表单可以提交
                    false:表示表单不可以提交 -->
    <form action="demo01.html" method="get" onsubmit="return fun()">
        姓名:<input type="text" name="username"><br>
        密码:<input type="password" name="password"><br>
        <input type="submit" value="提交">
    </form>
    <script type="text/javascript">
        //设置返回值false,表示表单不可以提交
        function fun(){
            return false;
        }
    </script>
</body>
</html>

小结:

1. onclick  点击事件
2. onchange  内容变化事件(常结合对输入字段的验证来使用)
3. onblur  元素失去焦点事件
4. onsubmit  提交表单事件
补充:
5. onload  用户进入某个页面的时候触发
6. onmouseover  鼠标移动到HTML元素上方的事件
7. onmouseout  鼠标移出HTML元素上方的事件
8. onfocus  元素获取焦点事件

5 BOM核心对象Window

Window对象:代表一个浏览器窗口

创建

是由浏览器直接创建,直接使用即可 例如:window.alert();

或者: alert();(可以省略,默认给的有window)

属性

self返回对当前窗口的引用。等价于 Window 属性。

案例: window.self.alert("hello");

opener返回对创建此窗口的窗口的引用。

5.1 与弹出框有关的方法
  • alert():显示带有一段消息和一个确认按钮的警告框,之前一直在使用,此处不再演示。

  • confirm(参数) :显示带有一段消息以及确认按钮和取消按钮的对话框。 confirm里面的字符串参数就是窗口的提示信息;他有返回值true或者false 。

【案例】:使用confirm演示确认删除数据前的提示功能

1、定义demo15.html页面

2、使用confirm演示“您确认要删除吗”,并接受打印返回值

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>confirm确认提示框</title>
</head>
<body>
    <button onclick="fun()">删除</button>
    <script>
        function fun() {
           var isDelete = confirm("您确定要删除吗");
           console.log(isDelete);
        }
    </script>
</body>
</html>

  • prompt():显示可提示用户输入的对话框【了解】。

//第一个参数:提示信息;第二个参数:默认值;又返回值,且类型为String;
//输入什么返回什么;
prompt("请输入姓名:","roy");// 无返回值;
var a =prompt("请输入行数:","3");//接收返回值;
alert(a); var aa=parseInt(a)
alert(typeof(aa));	
5.2 与打开关闭有关的方法

open() 打开一个新的浏览器窗口或查找一个已命名的窗口。

通过API知道这个方法有四个参数:

1. window.open("URL打开窗口的地址","名称","窗口的特点宽高",可选布尔值); 
    一般就用两个参数(参数1,空,参数3),第四个不用; 
2. 这里的window对象可以省略,但是建议不省略。因为一会儿学习的DOM也有open方法;
3. window.open()空参表示打开一个空白的窗口;

【案例】:定义一个按钮,点击按钮打开一个新窗口

1、定义demo16.html页面

2、定义一个按钮,点击按钮打开一个新窗口

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>window对象open方法</title>
    <script type="text/javascript">
        function open1(){
            window.open("demo1.html","","width=500,height=200");
        }
    </script>
</head>
<body>
<input type="button"  value="打开新窗口" onclick="open1()" />
</body>
</html>

5.3 与定时器有关的方法
  • interval:间隔执行。

setInterval("js代码",时间) 按照指定的周期(以毫秒计)来调用函数或计算表达式。此方法有一个返回值ID;clearInterval(ID) 取消由 setInterval()设置的计时器。参数必须是setInterval()方法的返回值。

【案例】:设置一个计时器实现倒计时秒杀功能;

1、定义demo17.html页面

2、定义计时器完成案例效果

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>setInterval计时器</title>
    <script type="text/javascript">
        var ID;
        //页面加载完成后执行的事件
        window.onload=function () {
            ID = setInterval("count()",1000); // 时间以毫秒为单位
        };
        var num=5;
        function count() {
            //document.getElementById根据id获取页面元素,innerText为元素动态赋值
            document.getElementById("ms").innerText=num;
            num=num-1;
            if(num<0){
                //当倒计时到0秒后,停止定时器
                clearInterval(ID);
            }
        }
    </script>
</head>
<body>
    还有<span id="ms">5</span>秒开启秒杀
</body>
</html>

 

  • setTimeout ("要执行的代码或者函数",时间) 在指定的毫秒数后调用函数或计算表达式。但是只执行一次; 此方法有一个返回值ID;clearTimeout(ID) 取消由 setTimeout() 方法设置的计时器。参数为setTimeOut()方法的返回值。

小结:

window对象
1. 与弹框有关的方法
     alert  提示框
     confirm  警告框
     prompt 输入框
2. 与打开关闭有关的方法
    open 打开窗口
    close 关闭窗口
3. 与定时器有关的方法
    setInterval 周期性执行定时器
    setTimeout 一次性执行定时器

6 核心DOM模型

6.1 Document文档对象

Document对象:每一个载入浏览器的HTML文档都会成为一个Document对象,有了这个对象我们就可以操作这个Html文档里的各个标签、属性、文本等等了。

Document文档常用方法

1. write();向浏览器输出内容,之前用过了,不再演示效果
2. getElementById();返回带有指定id的一个对象;非常重要,每个人必须会
3. getElementsByClassName()  基于class属性名获取页面元素
4. getElementsByName();返回带有指定名称的数组,切记返回的是数组;根据name属性获取标签对象;
5. getElementsByTagName();返回带有指定标签名的集合;切记是数组

6.2 操作Element对象的属性

元素对象(element对象)

常见的属性操作方法

1. 获取属性里面的值: getAttribute("属性名称");
2. 设置属性值: setAttribute("属性名称","属性值");
3. 删除属性: removeAttribute("属性名称");

小结:

document获取元素常用方法
1. getElementById();返回带有指定id的一个对象;非常重要,每个人必须会
2. getElementsByClassName()  基于class属性名获取页面元素
3. etElementsByName();返回带有指定名称的数组,切记返回的是数组;根据name属性获取标签对象;
3. getElementsByTagName();返回带有指定标签名的集合;切记是数组
element元素属性常用方法
1. 获取属性里面的值: getAttribute("属性名称");
2. 设置属性值: setAttribute("属性名称","属性值");
3. 删除属性: removeAttribute("属性名称");

  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值