JavaScript学习
创始人
2024-05-16 23:59:56
0

JavaScript 是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行。 JavaScript 是用来控制网页行为的,它能使网页可交互。

JavaScript(简称:JS)在1995年由Brendan Eich 发明,并于1997年成为一部ECMA 标准。

ECMAScript 6(ES6)是最新的JavaScript 版本(发布于2015年)。

JavaScript引入方式

JavaScript 引入方式就是 HTML 和 JavaScript 的结合方式。JavaScript引入方式有两种:

  • 内部脚本:将 JS代码定义在HTML页面中
  • 外部脚本:将 JS代码定义在外部 JS文件中,然后引入到 HTML页面中

内部脚本



Title



一般把脚本置于 元素的底部,可改善显示速度 。

因为浏览器在加载页面的时候会从上往下进行加载并解析。 我们应该让用户看到页面内容,然后再展示动态的效果。

外部脚本

首先定义外部 js 文件。

demo.js:

alert("Hello JavaScript!!");

然后在页面中引入外部的js文件



Title



注意

  • 外部脚本不能包含

    在谷歌浏览器右键选择检查,再点击Console可打开浏览器控制台。

    变量

    JavaScript 中用 var 关键字(variable 的缩写)来声明变量。

    格式 var 变量名 = 数据值;

    JavaScript 是一门弱类型语言,变量可以存放不同类型的值;

    如在定义变量时赋值为数字数据,还可以将变量的值改为字符串类型的数据。

    js 中的变量名命名也有如下规则,和java语言基本都相同

    • 组成字符可以是任何字母、数字、下划线(_)或美元符号($)
    • 数字不能开头
    • 建议使用驼峰命名

    JavaScript 中 var 关键字有点特殊,有以下地方和其他语言不一样 。

    • 作用域:全局变量,在代码块中定义的变量,在代码块外边还可以使用。

          {str = "Hello JS!";}window.alert(str);
      
    • 变量可以重复定义,JavaScript 会用后面赋的值将之前变量的 值替换掉。

          {str = "Hello JS!";str = "Hello";}window.alert(str);   //打印的结果是Hello
      

    ECMAScript 6 新增了 let 关键字来定义变量。它的用法类似于 var ,但是所声明的变量,只在 let 关键字所在的代码块内有效且不允许重复声明

    ECMAScript 6 新增了 const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变

        const s = "Hello";// s = "hello";
    

    数据类型

    JavaScript 中提供了两类数据类型:原始类型 和 引用类型。

    5种原始类型:

    • number:数字(整数、小数、 NaN(Not a Number))
    • string:字符、字符串,单双引皆可
    • boolean:布尔。true,false
    • null:对象为空
    • undefined:当声明的变量未初始化时,该变量的默认值是undefined

    使用 typeof 运算符可以获取数据类型。

        window.alert(typeof(str));
    

    运算符

    JavaScript 提供了如下的运算符。大部分和 Java语言都是一样的,不同的是 JS 关系运算符中的 =====

    • 一元运算符:++,–
    • 算术运算符:+,-,*,/,%
    • 赋值运算符:=,+=,-=…
    • 关系运算符:>,<,>=,<=,!=,=====
    • 逻辑运算符:&&,||,!
    • 三元运算符:条件表达式 ? true_value : false_value

    =====区别

    ==:

    1. 判断类型是否一样,如果不一样,则进行类型转换
    2. 再去比较其值

    ===:js 中的全等于

    1. 判断类型是否一样,如果不一样,直接返回false
    2. 再去比较其值
        var num1="20";var num2=20;alert(num1 == num2);  //truealert(num1 === num2);  //false
    

    类型转换

    其他类型转为number

    • string 转换为 number 类型:按照字符串的字面值,转为数字。如果字面值不是数字,则转为NaN

      将 string 转换为 number 有两种方式:

      • 使用 + 正好运算符

            var num1=+"20";alert(num1+1);  // 21
        
      • 使用parseInt()函数(方法)

            var num1="20";alert(parseInt(num1)+1);  // 21
        

      建议使用 parseInt() 函数进行转换。

    • boolean 转换为 number 类型:true 转为1,false转为0

    其他类型转为boolean

    • number 类型转换为 boolean 类型:0和NaN转为false,其他的数字转为true
    • string 类型转换为 boolean 类型:空字符串转为false,其他的字符串转为true
    • null类型转换为 boolean 类型是 false
    • undefined 转换为 boolean 类型是 false

    流程控制语句

    JavaScript 中提供了和 Java 一样的流程控制语句,如下

    • if
    • switch
    • for
    • while
    • do … while
    
    
    Title
    
    
    
    

    函数

    函数(就是Java中的方法)是被设计为执行特定任务的代码块;JavaScript 函数通过 function 关键词进行定义。

    函数定义格式有两种:

    • 方式一

      function 函数名(参数1,参数2..){要执行的代码
      }
      
    • 方式二

      var 函数名 = function (参数列表){要执行的代码
      }
      

    形式参数不需要类型。因为JavaScript是弱类型语言

    function add(a, b){return a + b;
    }
    

    上述函数的参数 a 和 b 不需要定义数据类型,因为在每个参数前加上 var 也没有任何意义。

    返回值也不需要定义类型,可以在函数内部直接使用return返回即可。

    
    

    注意:

    JS中,函数调用可以传递任意个数参数

    例如 let result = add(1,2,3);

    它是将数据 1 传递给了变量a,将数据 2 传递给了变量 b,而数据 3 没有变量接收.

    JavaScript常用对象

    基本对象

    Array对象

    JavaScript Array对象用于定义数组 。

    定义格式
    • 方式一

      var 变量名 = new Array(元素列表);
      
    • 方式二

      var 变量名 = [元素列表];
      
    元素访问
    arr[索引] = 值;
    
    
    
    特点

    JavaScript 中的数组相当于 Java 中集合。数组的长度是可以变化的,而 JavaScript 是弱类型,所以可以存储任意的类型的数据。

       var arr3 = [1,2,3];arr3[10] = 10;alert(arr3[10]); // 10alert(arr3[9]); //undefinedarr3[5] = "hello";alert(arr3[5]); // hellofor (let i = 0;i < 11;i++) {alert(arr3[i]);}
    
    属性

    我们只讲解 length 属性,该数组可以动态的获取数组的长度。

        var arr = [1,2,3];for (let i = 0; i < arr.length; i++) {alert(arr[i]);}
    
    方法

    push函数:给数组添加元素,也就是在数组的末尾添加元素

    
    

    splice函数:删除元素

    参数1:索引,表示从哪个索引位置删除

    参数2:个数,表示删除几个元素

    
    

    String对象

    定义格式
    • 方式一

      var 变量名 = new String(s);
      
    • 方式二

      var 变量名 = "数组";
      
    
    
    属性

    String对象提供了很多属性,下面列举了一个属性 length ,该属性是用于动态的获取字符串的长度 。

    • length:字符串的长度
    函数

    String对象提供了很多函数(方法),下面给大家列举了两个方法

    • charAt() : 返回在指定位置的字符
    • indexOf() : 检索字符串

    String对象还有一个函数 trim() ,该方法在文档中没有体现,但是所有的浏览器都支持;它是用来去掉字符串两端的空格。

    
    

    自定义对象

    下面是自定义对象的格式:

    var 对象名称 = {属性名称1:属性值1,属性名称2:属性值2,...,函数名称:function (形参列表){},...
    };
    

    调用属性的格式:

    对象名.属性名
    

    调用函数的格式:

    对象名.函数名()
    

    代码演示 :

    
    

    BOM

    BOM:Browser Object Model 浏览器对象模型。也就是 JavaScript 将浏览器的各个组成部分封装为对象。

    BOM 中包含了如下对象:

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

    在这里插入图片描述

    Window对象

    window 对象是 JavaScript 对浏览器的窗口进行封装的对象。

    获取window对象

    该对象不需要创建直接使用 window ,其中 window. 可以省略。比如我们之前使用的 alert() 函数,其实就是 window 对象的函数。

    • 显示使用Window对象调用

      window.alert("xxx");
      
    • 隐式调用

      alert("xxx");
      

    window对象属性

    window 对象提供了用于获取其他 BOM 组成对象的属性

    属性描述
    history对History 对象的只读引用。
    location用于窗口或框架的Location对象。
    Navigator对Navigator对象的只读引用。
    Screen对Screen 对象的只读引用。

    也就是说,我们想使用 Location 对象的话,就可以使用 window 对象获取;写成 window.location ,而 window. 可以 省略,简化写成 location 来获取 Location 对象。

    window对象函数

    window 对象提供了很多函数供我们使用,而很多都不常用;下面列举了一些比较常用的函数 。

    函数描述
    alert()显示带有一段消息和一个确认按钮的警告框。
    confirm()显示带有一段消息以及确认按钮和取消按钮的对话框。
    setInterval()按照指定的周期(以毫秒计算)来调用函数或计算表达式。
    setTimeout()在指定的毫秒数后调用函数或计算表达式。
    
    

    History对象

    History 对象是 JavaScript 对历史记录进行封装的对象。

    History 对象的获取

    • 使用 window.history获取,其中window. 可以省略

    History 对象的函数

    函数描述
    back()加载history列表中的前一个URL
    forword()加载history列表中的下一个URL

    Location对象

    Location 对象是 JavaScript 对地址栏封装的对象。可以通过操作该对象,跳转到任意页面。

    获取Location对象

    使用 window.location获取,其中window. 可以省略

    Location对象属性

    location对象最常用的一个属性是 href

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

    DOM

    DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。

    封装的对象分为

    • Document:整个文档对象
    • Element:元素对象
    • Attribute:属性对象
    • Text:文本对象
    • Comment:注释对象

    JavaScript 通过 DOM, 就能够对 HTML进行操作了

    • 改变 HTML 元素的内容
    • 改变 HTML 元素的样式(CSS)
    • 对 HTML DOM 事件作出反应
    • 添加和删除 HTML 元素

    获取 Element对象

    HTML 中的 Element 对象可以通过 Document 对象获取,而 Document 对象是通过 window 对象获取。

    Document 对象中提供了以下获取 Element 元素对象的函数

    • getElementById() :根据id属性值获取,返回单个Element对象
    • getElementsByTagName() :根据标签名称获取,返回Element对象数组
    • getElementsByName() :根据name属性值获取,返回Element对象数组
    • getElementsByClassName() :根据class属性值获取,返回Element对象数组
    
    
    Title
    
    
     
    Hello World 1

    Hello World 2

    电影 旅游 游戏

    HTML Element对象使用

    HTML 中的 Element 元素对象有很多,以后可以根据具体的需求查阅文档使用。

    
    
    Title
    
    
     
    Hello World 1

    Hello World 2

    电影 旅游 游戏

    事件监听

    HTML 事件是发生在 HTML 元素上的“事情”。比如:页面上的 按钮被点击 、 鼠标移动到元素之上 、 按下键盘按键 等都是事件。

    事件监听是JavaScript 可以在事件被侦测到时执行一段逻辑代码。

    事件绑定

    JavaScript 提供了两种事件绑定方式:

    • 方式一:通过 HTML标签中的事件属性进行绑定
    • 方式二:通过 DOM 元素属性绑定
    
    
    Title
    
     

    常见事件

    事件属性名说明
    onclick鼠标单击事件
    onblur元素失去焦点
    onfocus元素获得焦点
    onload某个页面或图像被完成加载
    onsubmit当表单提交时触发该事件
    onmouseover鼠标被移到某元素之上
    onmouseout鼠标从某元素移开
    
    
    Title
    
     

    RegExp对象

    RegExp 是正则对象。正则对象是判断指定字符串是否符合规则。

    正则对象使用

    创建对象

    正则对象有两种创建方式:

    • 直接量方式:注意不要加引号

      var reg = /正则表达式/;
      
    • 创建 RegExp 对象

      var reg = new RegExp("正则表达式");
      

    函数

    test(str) :判断指定字符串是否符合规则,返回 true或 false

    正则表达式

    正则表达式常用的规则如下:

    • ^:表示开始
    • $:表示结束
    • [ ]:代表某个范围内的单个字符,比如: [0-9] 单个数字字符
    • .:代表任意单个字符,除了换行和行结束符
    • \w:代表单词字符:字母、数字、下划线(),相当于 [A-Za-z0-9]
    • \d:代表数字字符: 相当于 [0-9]

    量词:

    • +:至少一个
    • *:零个或多个
    • ?:零个或一个
    • {x}:x个
    • {m,}:至少m个
    • {m,n}:至少m个,最多n个
        
    

相关内容

热门资讯

安卓系统苹果手机识别,跨界融合... 你知道吗?在科技飞速发展的今天,手机已经成为了我们生活中不可或缺的一部分。而说到手机,安卓系统和苹果...
harmonyos系统是不是安... 亲爱的读者,你是否曾好奇过HarmonyOS系统与安卓系统之间的关系?是不是安卓的“亲戚”?今天,就...
手机怎么装系统安卓,安卓系统安... 手机卡顿了?想给安卓系统来个大变身?别急,跟着我一步步来,保证让你的手机焕然一新!一、准备工作在开始...
安卓Linux系统内网穿透,A... 你有没有想过,你的安卓手机里那些看似普通的APP,其实可能正在悄悄地帮你打通网络世界的任督二脉呢?没...
win怎么安装安卓系统,Win... 亲爱的读者,你是不是对Win系统上的安卓应用垂涎已久,但又苦于不知道如何安装安卓系统呢?别急,今天我...
升级小米平板安卓系统,畅享全新... 你有没有发现,你的小米平板用久了,是不是感觉有点卡呢?别急,今天就来教你怎么给它来个系统升级,让它焕...
捷豹安卓系统车载,捷豹安卓系统... 哇,你有没有想过,当你的手机和汽车融为一体,会是怎样的体验呢?想象你正驾驶着你的捷豹,车窗外的风景如...
安卓1到10系统,安卓1.0至... 你有没有想过,手机里的安卓系统就像是我们生活中的好朋友,从青涩的少年成长为稳重的青年呢?从安卓1.0...
安卓8.0停用系统应用,提升使... 你知道吗?最近安卓系统又来了一次大动作,那就是安卓8.0系统开始停用一些系统应用了。这可真是让人有点...
安卓系统修改mtu值,轻松提升... 你有没有想过,你的安卓手机其实是个小小的电脑呢?它里面藏着许多可以自定义的秘密功能,就像修改MTU值...
安卓平板改window系统,探... 你有没有想过,你的安卓平板其实可以摇身一变,变成一个Windows系统的电脑呢?没错,就是那种可以运...
时空猎人安卓苹果系统,探索无尽... 你知道吗?最近在手机游戏圈里,有一款叫做《时空猎人》的游戏可是火得一塌糊涂呢!不管是安卓用户还是苹果...
安卓9.0系统的电视,新一代电... 亲爱的读者们,你是否也像我一样,对科技新玩意儿充满好奇?今天,我要和你聊聊一个让人眼前一亮的话题——...
小pc安装安卓系统,轻松安装安... 你有没有想过,你的小PC也能变身成为安卓系统的超级玩家呢?没错,就是那个平时默默无闻的小家伙,现在也...
高通备份安卓系统,全方位数据安... 你知道吗?在这个科技飞速发展的时代,手机备份可是个不得不提的话题。尤其是对于安卓用户来说,选择一个靠...
谷歌安卓系统有多少,从诞生到全... 你有没有想过,那个无处不在的谷歌安卓系统,究竟在全球有多少用户呢?它就像一个神秘的数字,每天都在悄悄...
fc黄金传说安卓系统,畅享复古... 你有没有听说最近安卓系统上的一款超酷的游戏——《FC黄金传说》?这款游戏可是让不少玩家都沉迷其中,今...
变小的我安卓系统,安卓系统演变... 你有没有发现,最近你的手机好像变轻了?没错,说的就是你,那个陪伴你多年的安卓系统。它悄无声息地进行了...
vivo安卓系统小彩蛋,体验科... 你知道吗?在vivo的安卓系统中,竟然隐藏着一些超有趣的小彩蛋!这些小彩蛋就像是在手机里埋下的宝藏,...
安卓系统如何强制重启,安卓系统... 手机突然卡壳了,是不是又该给它来个“大保健”了?没错,今天就来聊聊安卓系统如何强制重启。别小看这个看...