js

1.JS概述:
JS是一种运行在浏览器端的脚本语言。
负责页面动态效果, 简单来说, 就是负责让页面动起来。
JavaScript = ECMAScript + BOM + DOM;

2.JS的组成
ECMAScript :JS的基本语法
BOM :浏览器对象模型(Browser Object Model),包含了JS中操作浏览器的相关对象.
DOM :文档对象模型(Document Object Model),包含了JS中操作HTML页面的相关对象.

3.JS的引入方式
3.1:内部JS:
* 定义<script>,标签体内容就是js代码
3.2:外部JS:
* 定义<script>,通过src属性引入外部的js文件. 此时,标签体内部不允许写任何代码
注意:
1.<script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。一般建议定义在标签内部
2.<script>可以定义多个。
3.<script>在引入了外部的JS文件后,其内部将不再允许书写js代码。

4.JS的基本语法(与Java不同之处):
定义变量:
var a = 值;
定义方法:
function 方法名(){ }
运算符:
== :"数值"是否相等
=== :"数值"和"类型"都完全相同,才是true
注意:
其他语法,和Java语法几乎完全相同

5.类型转换(了解)
概述:
JS是弱类型语言,在处理数据时,对类型要求不严格,所以,就会产生一些数据类型上的自动转换。
分类:
转换为number:
* string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
* boolean转number:true转为1,false转为0
转换为boolean:
* number转boolean:0或NaN为假,其他为真
* string转boolean:除了空字符串(""),其他都是true
* null转boolean: 都是false
* undefined转boolean:都是false
* 对象:都为true
//一切有意义的都是true,无意义的都是false

6.JS的常见对象:
6.1:Array(数组)
创建数组:
var arr = [元素列表];
常用属性:
length:数组的长度
常用方法:
join(): 把数组按照指定字符串拼接.
/**
* 例如:
* var arr = [1,2,3];
* document.write(arr.join("-"));
* 结果是: 1-2-3
*/
push(新元素): 向数组的最后添加新元素
特点:
1. JS中,数组元素的类型可变的。
2. JS中,数组长度可变的。

6.2:Date(日期时间)
	var date = new Date();	//获取当前时间
	date.getTime();			//获取当前时间的毫秒值。返回当前日期对象描述的时间到1970年1月1日零点的毫秒值差

	document.write(date.toLocaleString()); //返回当前date对象对应的时间本地字符串格式
	document.write(date.getTime());

	
6.3:Math
	Math.random()	:返回 0 ~ 1 之间的随机数。 含0不含1
	Math.ceil(x)	:对数进行上舍入。
	Math.floor(x)	:对数进行下舍入。
	Math.round(x)	:把数四舍五入为最接近的整数。
	Math.PI			: π

7.正则表达式:
概述:
是一个包含了特殊规则的字符串。(本质上也是一个字符串,只不过该字符串中的字符包含了特定含义)
规则:
单个字符:[]
如:[a] [ab] [a-zA-Z0-9_]
* 特殊符号代表特殊含义的单个字符:
\d:单个数字字符 [0-9]
\w:单个单词字符[a-zA-Z_0-9]
量词符号:
? //表示出现0次或1次
* //表示出现0次或多次
+ //出现1次或多次
{m,n}: //表示最小m次,最多n次
* m如果缺省: {,n}:最多n次
* n如果缺省:{m,} 最少m次
其他:
^:开始
$:结束

8.JS中使用正则表达式
1.创建正则表达式对象
var reg = /正则表达式/;
2.使用正则表达式
reg.test(字符串); //验证指定的"字符串"是否符合"正则表达式的指定规则"
3.常用规则:
A. QQ正则
[1-9]\d{4,10} 注意:这是方式1的创建方式
B. 手机号正则
[1][34578]\d{9}
C. 邮箱正则
\w+@[a-zA-Z0-9]+\.[a-z]{2,3}

9.全局对象Global
特点:
该对象Global中封装的方法不需要对象, 可以直接调用。
常用方法:
parseInt():将字符串转为数字
* 逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number
isNaN():判断一个值是否是NaN
* NaN六亲不认,连自己都不认。NaN参与的==比较全部都是false
eval():讲 JavaScript 字符串,并把它作为脚本代码来执行。

10.URL编码(了解)
概述:
在Web开发中,浏览器的地址栏,不支持中文.
为了解决这个问题, 我们在传递中文时,会把中文进行编码传输, 等对方接收后,对方解码, 这就是URL编码和解码.
方法:
encodeURI():url编码
decodeURI():url解码
encodeURIComponent():url编码,编码的字符更多
decodeURIComponent():url解码

 ```
  1. JavaScript:
    1. ECMAScript:
    2. BOM:
    3. DOM:
      1. 事件

**href="javascript:void(0);"和href="#"都表示超链接不做跳转操作。**

## DOM简单学习:为了满足案例要求

  • 功能:控制html文档的内容

  • 获取页面标签(元素)对象:Element

    • document.getElementById(“id值”):通过元素的id获取元素对象
  • 操作Element对象:

    1. 修改属性值:
      1. 明确获取的对象是哪一个?
      2. 查看API文档,找其中有哪些属性可以设置
    2. 修改标签体内容:
      • 属性:innerHTML
      1. 获取元素对象
      2. 使用innerHTML属性修改标签体内容

## 事件简单学习

  • 功能: 某些组件被执行了某些操作后,触发某些代码的执行。

    • 造句: xxx被xxx,我就xxx
      • 我方水晶被摧毁后,我就责备对友。
      • 敌方水晶被摧毁后,我就夸奖自己。
  • 如何绑定事件

    1. 直接在html标签上,指定事件的属性(操作),属性值就是js代码

      1. 事件:onclick— 单击事件
    2. 通过js获取元素对象,指定事件属性,设置一个函数

    • 代码:

        <script>
            function fun(){
                alert('我被点了');
                alert('我又被点了');
            }
        
            function fun2(){
                alert('咋老点我?');
            }
        
            //1.获取light2对象
            var light2 = document.getElementById("light2");
            //2.绑定事件
            light2.onclick = fun2;
      

​				</script>
​			</body>
​	

  • 案例1:电灯开关

    电灯开关

​		
​		    }
​		    
​		</script>
​		</body>
​		</html>

##  BOM:

  1. 概念:Browser Object Model 浏览器对象模型

    • 将浏览器的各个组成部分封装成对象。
  2. 组成:

    • Window:窗口对象
    • Navigator:浏览器对象
    • Screen:显示器屏幕对象
    • History:历史记录对象
    • Location:地址栏对象
  3. Window:窗口对象

    1. 创建

    2. 方法

      1. 与弹出框有关的方法:
        alert() 显示带有一段消息和一个确认按钮的警告框。
        confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
        * 如果用户点击确定按钮,则方法返回true
        * 如果用户点击取消按钮,则方法返回false
        prompt() 显示可提示用户输入的对话框。
        * 返回值:获取用户输入的值

      2. 与打开关闭有关的方法:
        close() 关闭浏览器窗口。
        * 谁调用我 ,我关谁
        open() 打开一个新的浏览器窗口
        * 返回新的Window对象

      3. 与定时器有关的方式
        setTimeout() 在指定的毫秒数后调用函数或计算表达式。
        * 参数:
        1. js代码或者方法对象
        2. 毫秒值
        * 返回值:唯一标识,用于取消定时器
        clearTimeout() 取消由 setTimeout() 方法设置的 timeout。

        setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
        clearInterval() 取消由 setInterval() 设置的 timeout。

    3. 属性:

      1. 获取其他BOM对象:
        history
        location
        Navigator
        Screen:
      2. 获取DOM对象
        document
    4. 特点

      • Window对象不需要创建可以直接使用 window使用。 window.方法名();
      • window引用可以省略。 方法名();

  1. Location:地址栏对象
    1. 创建(获取):

      1. window.location
      2. location
    2. 方法:

      • reload() 重新加载当前文档。刷新
    3. 属性

      • href 设置或返回完整的 URL。

  1. History:历史记录对象
    1. 创建(获取):

      1. window.history
      2. history
    2. 方法:

      • back() 加载 history 列表中的前一个 URL。
      • forward() 加载 history 列表中的下一个 URL。
      • go(参数) 加载 history 列表中的某个具体页面。
        • 参数:
          • 正数:前进几个历史记录
          • 负数:后退几个历史记录
    3. 属性:

      • length 返回当前窗口历史列表中的 URL 数量。



## DOM:

  • 概念: Document Object Model 文档对象模型

    • 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作
  • W3C DOM 标准被分为 3 个不同的部分:

    • 核心 DOM - 针对任何结构化文档的标准模型
      • Document:文档对象

      • Element:元素对象

      • Attribute:属性对象

      • Text:文本对象

      • Comment:注释对象

      • Node:节点对象,其他5个的父对象

    • XML DOM - 针对 XML 文档的标准模型
    • HTML DOM - 针对 HTML 文档的标准模型





  • 核心DOM模型:
    • Document:文档对象
      1. 创建(获取):在html dom模型中可以使用window对象来获取
        1. window.document
        2. document
      2. 方法:
        1. 获取Element对象:

          1. getElementById() : 根据id属性值获取元素对象。id属性值一般唯一
          2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
          3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
          4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组

          注意:document.getElementsByName() 根据name属性值获取多个元素,而非元素名称;
          document.getElementsByTagName() 根据元素名称获取多个元素。

        2. 创建其他DOM对象:
          createAttribute(name)
          createComment()
          createElement()
          createTextNode()

      3. 属性
    • Element:元素对象
      1. 获取/创建:通过document来获取和创建
      2. 方法:
        1. removeAttribute():删除属性
        2. setAttribute():设置属性
    • Node:节点对象,其他5个的父对象
      • 特点:所有dom对象都可以被认为是一个节点
      • 方法:
        • CRUD dom树:
          • appendChild():向节点的子节点列表的结尾添加新的子节点。
          • removeChild():删除(并返回)当前节点的指定子节点。
          • replaceChild():用新节点替换一个子节点。
      • 属性:
        • parentNode 返回节点的父节点。

  • HTML DOM
    1. 标签体的设置和获取:innerHTML
    2. 使用html元素对象的属性
    3. 控制元素样式
      1. 使用元素的style属性来设置
        如:
        //修改样式方式1
        div1.style.border = “1px solid red”;
        div1.style.width = “200px”;
        //font-size–> fontSize
        div1.style.fontSize = “20px”;
      2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。

## 事件监听机制:

  • 概念:某些组件被执行了某些操作后,触发某些代码的执行。
    • 事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了
    • 事件源:组件。如: 按钮 文本输入框…
    • 监听器:代码。
    • 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。

  • 常见的事件:
    1. 点击事件:

      1. onclick:单击事件
      2. ondblclick:双击事件
    2. 焦点事件

      1. onblur:失去焦点
      2. onfocus:元素获得焦点。
    3. 加载事件:

      1. onload:一张页面或一幅图像完成加载。
    4. 鼠标事件:

      1. onmousedown 鼠标按钮被按下。
      2. onmouseup 鼠标按键被松开。
      3. onmousemove 鼠标被移动。
      4. onmouseover 鼠标移到某元素之上。
      5. onmouseout 鼠标从某元素移开。

5. 键盘事件:
	1. onkeydown	某个键盘按键被按下。	
	2. onkeyup		某个键盘按键被松开。
	3. onkeypress	某个键盘按键被按下并松开。

6. 选择和改变
	1. onchange	域的内容被改变。
	2. onselect	文本被选中。

7. 表单事件:
	1. onsubmit	确认按钮被点击。
	2. onreset	重置按钮被点击。

反馈测试题:
href="javascript:void(0);“和href=”#"都表示超链接不做跳转操作。

测试中,href为””,表示跳转到当前页面,先于onclick事件执行,也就是跳转页面。所以onclick事件对应的操作就不能执行了。

以下关于事件绑定正确的是:()
A.<input type=“button” value=“新按钮” οnclick=“fun1()”
B.
C.document.getElementById(“btn1”).οnclick=fun1();
D:document.getElementById(“btnl”).οnclick=fun1;

答案:A,D
解析:
事件的常见注册方式有两种:

1.元素事件句柄绑定:将事件名以元素属性的方式写到标签上,进而绑定对应函数。

2.DOM绑定方式:使用DOM的属性方式绑定事件。document.getElementById(“btn1”).οnclick=fun1,此处的方法不加(),这个表示绑定,如果加(),表示直接调用。

由此可以判断答案。








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值