• Web开发之JavaScript知识点总结


    JavaScript(JS)是web上的脚本语言,JavaScrip和Java的关系就好比雷峰塔和雷锋之间的关系,哈哈。JS主要用于控制页面的特效展示,JS可以对HTML进行动态控制,可以对表单进行校验,也可以控制CSS样式。JS是脚本语言,不需要编译,浏览器直接解析就可以,JS必须嵌入到其它语言中,无法独立执行,JS的执行过程是从上到下依次执行的。JS主要包括三部分:ECMAScript规定了JS的语法和基本对象;DOM对象用于处理网页内容的方法和接口;BOM对象用于处理与浏览器交互的方法和接口。

    目录

    1、JS基本数据类型

    2、JS的运算符

    3、JS中的正则对象

    4、JS中数组对象的相关操作

    5、全局函数和自定义函数 

    6、自定义对象

    7、BOM对象的使用

    8、DOM对象的使用

    9、常见的JS事件

    10、JS事件的两种绑定方式


    1、JS基本数据类型

    5种基本数据类型,分别为number,string,boolean,null,undefined类型。引用数据类型如下:

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的基本数据类型title>
    6. <script>
    7. var s1 = "a" ;
    8. var s2 = 'a' ;
    9. var flag1 = true ;
    10. var flag2 = false ;
    11. var num1 = 1 ;
    12. var num2 = -1.5 ;
    13. var obj = null ;
    14. var u = undefined ;
    15. var str = new String() ;
    16. var str1 = new String ;
    17. script>
    18. head>
    19. <body>
    20. body>
    21. html>

    2、JS的运算符

    JS的运算包括算术运算符和逻辑运算符,和常规的JAVA运算符基本差不多,稍有一些区别。

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的基本数据类型title>
    6. <script>
    7. var a = 1 ;
    8. var b = '1' ;
    9. alert(a==b) ;
    10. alert(a===b) ; //全等,值和类型都要相等
    11. alert(a!=b) //不相等
    12. var c = true ;
    13. var d = false ;
    14. //逻辑运算符
    15. alert(c && d) ;
    16. alert(c || d) ;
    17. alert(!c)
    18. script>
    19. head>
    20. <body>
    21. body>
    22. html>

    3、JS中的正则对象

    JS的中的正则对象以^开始,以$结束,一般使用正则对象.test(String)方法校验字符串是否匹配正则对象。

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的正则对象title>
    6. <script>
    7. var reg = /^\s*$/ //表示0个至多个空格组成
    8. var flag = reg.test(" ") ;
    9. var flag1 = reg.test(" a ") ;
    10. alert(flag) ;
    11. alert(flag1) ;
    12. script>
    13. head>
    14. <body>
    15. body>
    16. html>

    4、JS中数组对象的相关操作

    包含数组的创建,以及数组中的常用方法的操作,具体如下:

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的数组对象title>
    6. <script>
    7. //JS中数组对象的四种创建方式
    8. var arr1 = [1,2,3] ;//数组中包含三个元素
    9. var arr2 = new Array() ;//数组空间为0
    10. var arr3 = new Array(4) ;//数组空间为4
    11. var arr4 = new Array(1,2,3,'a',true) ; //数组元素为1,2,3,a,true
    12. var len = arr1.length ;
    13. var res1 = arr1.join("-") ;//将数组元素放入字符串,并用-分离
    14. var res2 = arr1.reverse() ; //颠倒数组元素的顺序
    15. var res3 = arr1.pop() ; //删除并返回数组的最后一个元素
    16. var res4 = arr1.push("a") ; //向数组末尾添加一个元素,并返回新的长度
    17. script>
    18. head>
    19. <body>
    20. body>
    21. html>

    5、全局函数和自定义函数 

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的函数title>
    6. <script>
    7. //计算JS的字符串,并当作脚本来执行
    8. eval("var a = 2 ;") ;
    9. alert(a) ;
    10. var b = "3.7" ;
    11. //解析一个字符串并返回整数和浮点数
    12. alert(parseInt(b));
    13. alert(parseFloat(b)) ;
    14. //JS中没有方法重载之说,重名的函数只会覆盖点原来的
    15. //自定义a和b的求和函数
    16. function getSum(a, b) {
    17. return a + b ;
    18. }
    19. script>
    20. head>
    21. <body>
    22. body>
    23. html>

    6、自定义对象

    JS中的对象创建方式和Java中对象创建方式很像,只不过Java是new的方式,而JS是用functon。另外JS也可以使用直接量的方式创建对象。

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的自定义对象title>
    6. <script>
    7. function Person() {
    8. this.name = "张三";
    9. this.age = 18 ;
    10. }
    11. var p = new Person() ;
    12. alert(p.name) ;
    13. alert(p.age) ;
    14. function Person1(name, age) {
    15. this.name = name ;
    16. this.age = age ;
    17. }
    18. var p1 = new Person1("李四", 19) ;
    19. alert(p1.name)
    20. p1.name = "王五" ;
    21. //直接量方式创建对象
    22. var p2 = {name : "张三", age : 19} ;
    23. alert(p2.name) ;
    24. alert(p2.age) ;
    25. script>
    26. head>
    27. <body>
    28. body>
    29. html>

    7、BOM对象的使用

    BOM对象是浏览器对象莫模型,用来执行浏览器的相关操作,例如:浏览器的消息弹出等。wndow代表了BOM对象,window是JS的内置对象,使用的时候一般可以省略window.

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的BOM对象title>
    6. <script>
    7. function run1() {
    8. alert("run1") ;
    9. clearInterval(id) ; //取消循环定时器,只执行一次
    10. }
    11. function run2() {
    12. alert("run2")
    13. }
    14. var a = 1 ;
    15. //弹出的提示框
    16. alert(a) ;
    17. //y有返回值的确认框
    18. var falg =confirm("是否确认删除?") ;
    19. var id = setInterval("run1()",2000) ; //每隔2秒执行一次run1()方法
    20. setTimeout("run2()", 1000) ; //一次性定时器,1s后执行一次
    21. var url = location.href ; //当前的url
    22. script>
    23. head>
    24. <body>
    25. body>
    26. html>

    8、DOM对象的使用

    DOM是文档对象模型,DOM将标记型文档的所有内容都标记为对象,通过操作对象的属性和方法,来达到操作或改变HTML展示效果的目的。HTML的每个标签都会被加载到DOM树的一个元素对象。一个HTML文档加载到内存中就会行成一个DOM对象。

    DOM对象通过四种方式获取元素对象,具体如下:

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的DOM对象title>
    6. head>
    7. <body>
    8. <input type="text" id = "id1"/>
    9. <input type="checkbox" name="hobby" value="basketball"/> 篮球
    10. <input type="checkbox" name="hobby" value="volleyball"/> 排球
    11. <input type="checkbox" name="hobby" value="football"/>足球
    12. <ul>
    13. <li>选项1li>
    14. <li>选项2li>
    15. <li>选项3li>
    16. <li>选项4li>
    17. ul>
    18. <input type="radio" name="sex" value="man" class="h1"/>
    19. <input type="radio" name="sex" value="woman" class="h1"/>
    20. <script>
    21. //获取元素对象的四种方式
    22. //1.通过id获取元素对象
    23. var t1 = document.getElementById("id1") ;
    24. //2.通过name属性获取所有满足要求的对象
    25. var t2 = document.getElementsByName("hobby") ;
    26. //3.通过标签名获取所有的元素对象
    27. var t3 = document.getElementsByTagName("li") ;
    28. //4.通过class属性获取元素对象
    29. var t4 = document.getElementsByClassName("h1") ;
    30. alert(t1) ;
    31. alert(t2.length) ;
    32. alert(t3.length) ;
    33. alert(t4.length) ;
    34. script>
    35. body>
    36. html>

    DOM对象中元素对象的常见属性如下:包括修改value,className,默认选中,以及内容体等属性,具体如下:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的DOM对象title>
    6. <style>
    7. .y1{
    8. color: red;
    9. }
    10. .y2{
    11. color: blue;
    12. }
    13. style>
    14. head>
    15. <body>
    16. <input type="text" id = "id1" name="input" value="你好"/>
    17. <span id = "id2" class="y1">Java之父span>
    18. <input type="checkbox" id="hobby">
    19. <span id = "span1">这是内容体span>
    20. <script>
    21. //更改value属性
    22. var t1 = document.getElementById("id1") ;
    23. t1.value = "我很好" ;
    24. alert(t1.value) ;
    25. //更改class属性
    26. var t2 = document.getElementById("id2") ;
    27. t2.className = "y2" ;
    28. //设置默认选中
    29. var t3 = document.getElementById("hobby") ;
    30. alert(t3.checked)
    31. t3.checked = true ;
    32. //获取内容体与修改内容体
    33. var t3 = document.getElementById("span1") ;
    34. alert(t3.innerHTML) ; //获取对象的内容体
    35. t3.innerHTML = "今天下雨了" ;
    36. t3.innerHTML += ",今天很冷" ;
    37. alert(t3.innerHTML)
    38. script>
    39. body>
    40. html>

    9、常见的JS事件

    通过鼠标或热键的动作我们称之为事件,通过JS事件,我们可以完成页面的指定特效。

    JS事件驱动机制包含三部分:事件源,事件,监听器;

    下面的是点击事件:

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的常见事件title>
    6. <script>
    7. function run1() {
    8. alert("你点击了按钮") ;
    9. }
    10. script>
    11. head>
    12. <body>
    13. <input type="button" name="button1" value="点击我" onclick="run1()"/>
    14. body>
    15. html>

    如下是焦点事件,分为获取焦点和失去焦点两种,具体如下:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的常见事件title>
    6. <script>
    7. function run1() {
    8. alert("你获取了焦点") ;
    9. }
    10. function run2() {
    11. alert("你失去了焦点") ;
    12. }
    13. script>
    14. head>
    15. <body>
    16. <input type="text" onfocus="run1()" />
    17. <input type="text" onblur="run2()">
    18. body>
    19. html>

    域内容改变事件,只要域内容改变就会触发相应的方法,具体如下:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的常见事件title>
    6. <script>
    7. function run1() {
    8. alert("域内容改变事件") ;
    9. }
    10. script>
    11. head>
    12. <body>
    13. <select onchange="run1()">
    14. <option value="beijing"> 北京 option>
    15. <option value="shanghai"> 上海 option>
    16. <option value="nanjing"> 南京 option>
    17. select>
    18. body>
    19. html>

    页面加载完毕事件如下:
     

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的常见事件title>
    6. <script>
    7. function run1() {
    8. alert("页面加载完毕") ;
    9. }
    10. script>
    11. head>
    12. <body onload="run1()">
    13. body>
    14. html>

    表单提交事件,可以用于表单的校验:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的常见事件title>
    6. <script>
    7. function run1() {
    8. alert("表单按钮被点击了") ;
    9. //表单校验
    10. return false ;
    11. }
    12. script>
    13. head>
    14. <body >
    15. <form onsubmit="return run1()">
    16. <input type="text" name="username"/><br/>
    17. <input type="submit" value="提交">
    18. form>
    19. body>
    20. html>

    键位弹起事件和鼠标移入事件,具体如下:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的常见事件title>
    6. <script>
    7. function run1() {
    8. alert("触发了键位弹起事件") ;
    9. }
    10. function run2() {
    11. alert("触发了鼠标移入事件") ;
    12. }
    13. script>
    14. head>
    15. <body >
    16. <input type="text" onkeyup="run1()"/>
    17. <input type="text" onmousemove="run2()">
    18. body>
    19. html>

    10、JS事件的两种绑定方式

    第一种方式:元素事件句柄绑定,开发快捷,传参方便,可以绑定多个函数,不过该方法使得JS和HTML代码糅合在一起,不利于分开开发,具体如下:
     

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的事件的两种绑定方式title>
    6. <script>
    7. function run1() { //绑定无参的
    8. alert("run1") ;
    9. }
    10. function run2(str) { //绑定带参的
    11. alert(str) ;
    12. }
    13. function run3(obj) { //绑定元素对象
    14. alert(obj.value)
    15. }
    16. script>
    17. head>
    18. <body >
    19. <input type="text" value="1111" onclick="run1()"/>
    20. <input type="text" value="2222" onclick="run2('hello')">
    21. <input type="text" value="3333" onclick="run3(this)">
    22. <input type="text" value="4444" onclick="run1(),run2('java'),run3(this)"/>
    23. body>
    24. html>

    第二种方式:使用DOM属性的方式绑定,可以使得HTML代码和JS代码份力,并且使用匿名函数的方式可以传参和一个事件可以绑定多个函数,具体如下:

    1. DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>JS的事件的两种绑定方式title>
    6. <script>
    7. function run1() {
    8. alert("run1") ;
    9. }
    10. function run2() {
    11. alert("run2") ;
    12. }
    13. //当页面加载完毕,为对象t绑定两个事件
    14. window.onload = function () {
    15. var t = document.getElementById("id1") ;
    16. t.onclick = function () {
    17. run1() ;
    18. run2() ;
    19. }
    20. }
    21. script>
    22. head>
    23. <body >
    24. <input type="text" id="id1"/>
    25. body>
    26. html>
  • 相关阅读:
    Footprint Analytics 与 GalaChain 达成战略合作
    Numpy入门[14]——二元运算
    Rabbitmq 常见问题处理
    Vue3+Element Plus实现el-table跨行显示(非脚手架)
    Flink的三种执行模式STREAMING和BATCH和AUTOMATIC
    沉浸式推理乐趣:体验线上剧本杀小程序的魅力
    Acwing 1927 自动补全(知识点:hash,二分,排序)
    springboot健身房管理系统毕业设计源码031807
    web开发模式——一般两种
    SQL server中内连接和外连接的区别、表达(表的连接)
  • 原文地址:https://blog.csdn.net/nuist_NJUPT/article/details/126368682