JavaScript基础语法

JavaScript基础

1、JavaScript介绍

  • 概念:一门客户端脚本语言
    • 运行在客户端浏览器中,每一个浏览器都有JavaScript的解析引擎
    • 脚本语言:不需要编译,直接就可以被浏览器解析执行
  • 功能:
    • 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增加用户的体验
  • JavaScript发展史:
    • 九十年代网速在十几k,网速很慢,很多用户需要上网,如逛论坛,就需要进入注册页面进行用户注册、登录。则需要将填写的数据发送给服务器端,在服务器端进行判断用户名是否被注册、填写信息是否规范等。
        此时如果在填写信息后,点击提交后,发现有些信息并没有填写规范,那么此时数据正在上传至服务器端进行验证,那么则需要浪费很多时间,由服务器进行验证后,返回给用户重新填写,那么又得需要用户进行等待。此时就会浪费用户的时间。(即本地没有校验,只能依靠低网速上传给服务器进项验证)。
    • 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为:C- - (碰瓷),在网景和微软两家的浏览器大火的时候,Nombase公司将其改名为ScriptEase。
    • 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。发现其中有一些缺陷。后来,请来了SUN公司的专家,修改LiveScript,命名为JavaScript(借鉴java的名气,有助于宣传),但语法接近java,因为由SUN公司的人员参与。
    • 1996年,微软公司推广自己的浏览器IE,抄袭了JavaScript,开发出了JScript语言。
    • 1997年,ECMA(欧洲计算机制造商协会)统一指定了一套规范,让市场有标准化,依照JavaScript的基础,制定了ECMAScript,就是所有客户端脚本语言的标准。
      • JavaScript = ECMAScript + JavaScript自己特有的BOM+DOM

2、ECMAScript

    1. 基本语法
    • 与html的结合方式
      • 内部的结合方式:定义<script>,标签体内容就是js代码
        <script>标签可以随意放在html中,但是要注意这个标签的执行顺序
        <script> alert("hello world"); </script>
      • 外部的结合方式:通过src属性引入外部的js文件
        <script src="路径/js文件"></script>
        注意:<script>可以定义在html页面的任何地方,但是定义的位置会影响执行的顺序。
        <script>可以定义多个
    • 注释
      • 单行注释://注释内容
      • 多行注释 :/* 注释的内容 */
    • 数据类型:
        1. 原始数据类型(基础数据类型)
          1. number:数字。整数/小数/NaN(not a number 一个不是数字的数字类型)
          1. string:字符串。字符串 “abc”  “a” ‘a’
          1. boolean:true和false
          1. null:一个对象为空的占位符
          1. undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
        1. 引用数据类型:对象
    • 变量:一小块存储数据的内存空间
      • Java语言是强类型语言,而JavaScript是弱类型语言。
        • 强类型:申请变量存储空间,定义了空间将来存储的数据的数据类型,此时在该空间只能放该指定数据类型的值。
        • 弱类型:申请变量存储空间,不定义了空间将来存储的数据的数据类型,可以在该空间内放任意类型的值。
      • 语法:
        • var 变量名 = 初始化值; 例如:<script> // 定义变量 var a = 3; alert(a); a = "abc"; alert(a); </script>
          进行不同数据类型变量的使用:
<script>
        // // 定义变量
        // var a  = 3;
        // alert(a);
        // a = "abc";
        // alert(a);

        // 定义number类型
        var num1 =1;
        var num2 =1.2;
        var num3 =NaN;
        // 输出到页面上
        document.write(num1+"<br>");
        document.write(num2+"<br>");
        document.write(num3+"<br>");
        // 定义string类型
        var str1 = "abc";
        var str2 = 'efg';
        document.write(str1+"<br>");
        document.write(str2+"<br>");
        // 定义booleanl类型
        var flag = true;
        document.write(flag+"<br>");
        // 定义null
        var obj1 =null;
        var obj2 = undefined;
        var obj3;
        document.write(obj1+"<br>");
        document.write(obj2+"<br>");
        document.write(obj3+"<br>");
    </script>
    • 运算符
      • typeof运算符: typeof(变量名:variable)
      • 一元运算符:只有一个运算数的运算符
        • ++、- - 、+(正号)
          • ++、- -:自增(自减),在前,则先运算,后执行。反之,先执行,后运算。
          • +(正号)/-(负号):代表数字正负值
            • 注意:在js中,如果运算数不是运算符所要求的类型,那么js引擎会自动将运算数进行类型转化。
            • 其他类型转number:
              • String 转number:按照字面值进行转换,如果字面值不是数字,则转为NaN(不是数字的数字),NaN加任何数都为NaN。
              • boolean转number:true转1,false转0;
      • 算数运算符:+、 - 、* 、 /、%…
      • 赋值运算符:=、-=、+=…
      • 比较运算符:>、<、>=、<=、== 、 ===(全等于)…
          1. 类型相同 :直接比较document.write((3 > 4)+ " <br> ");
          • 字符串:按照字典顺序比较,按位逐一比较,直到得到大小为止。
          1. 类型不同:先进性类型转化,再比较。注意全等于(===),再比较之前,先判断类型,再判断值,如果类型不一致,则直接返回false。
            1. 字符串与数字比,会将字符转为number类型。
      • 逻辑运算符:&&、||、!
        • 数字类型转boolean:0为假,非0为真
        • strin转boolean:除空字符串(" "),其他都是true
        • null或undefined:都是false
        • 对象:都是true(在对象的获取的时候,可以进行判断,能够防止空指针异常)
      • 三元运算符:? :
        • 表达式?值1:值2;(如果判断表达式为真,则返回值1,反之则返回值2)
    • 流程控制语句
      • if…else
      • switch…case
        • 在java中,switch语句可以接收的数据类型:byte、int、char、枚举(jdk1.5)、字符串(jdk1.7)
        • 在js中,switch语句可以接任意的原始数据类型。
      • while
      • do…while
      • for:for(var i =1;i<=100;i++)
    • js特殊语法:
        1. 语句以分号结尾,如果一行只有一条语句,则; 可以省略。(一般不建议)
        1. 变量的定义可以使用var关键字,也可以不使用。(用var:定义局部变量;不用var:定义的是全局变量。// 一般不建议使用,一般先定义,在方法中赋值,也可以进行使用)
  • 案例小练习:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>练习九九乘法表</title>
    <style>
        td{
            border: 1px solid;
        }
    </style>
    <script>
        document.write("<table align='center'>");
        // 1、完成基本的for循环嵌套,展示乘法表
        for(var i =1;i<=9;i++){
            document.write("<tr>")
            for(var j =1;j<=i;j++){
                document.write("<td>")
                document.write(i+"*"+j+"="+(i*j)+"&nbsp;&nbsp;&nbsp;&nbsp;");
                document.write("</td>")
            }
            // document.write("<br>")
            document.write("</tr>")
        }

        document.write("</table>");
    </script>
</head>
<body>
    1. 基本对象:
      1. Array:数组对象
      • 创建
        • var arr = new Arrray(元素列表)
        • var arr = new Array(默认长度)
        • var arr = [元素列表]
      • 方法
        • join(参数):将数组中的元素按照指定的分隔符拼接成字符串
        • push():将数组的的尾部添加一个或者多个元素,并返回新的长度
      • 属性
        | constructor | 返回创建 Array 对象原型的函数|
        | length | 设置或返回数组中元素的数量。|
        | prototype | 允许您向数组添加属性和方法。|
      • 特点
        • JS中,数组元素的类型可变。
        • JS中,数组长度是可变的。
      1. Boolean
      1. Date
        1. 创建:var date = new Date();
          var date = new Date();
          document.write(date);
        1. 方法:
        • toLocaleString():返回当前date对象对应的时间本地字符格式
          var date = new Date();
          document.write(date.toLocaleString);
        • getTime():获取毫秒值,返回当前日期对象描述的时间到1970年1月1日零点的毫秒值差
      1. Math:数字对象
        1. 创建:Math对象不用创建,直接使用
        1. 方法:
        • random():返回0~1之间的随机数。(包含0,不包含1)
          var date = new Date();
          document.write(date.toLocaleString);
        • ceil(x):对数进行上舍入。document.write(Math.ceil(Math.PI) +"<br>")
        • floor(x):对数进行下舍入。document.write(Math.floor(Math.PI) +"<br>")
        • round(x):对数四舍五入为最接近的整数。document.write(Math.round(Math.PI) +"<br>")
          例:取1~100之间的随机整数。
          提示:
          1、Math.random()产生随机数,范围 [0,1) 的小数。
          2、乘以100 ------> [0,100)的数
          3、舍弃小数部分,floor —> [0,99] 的整数
          4、+1 -----> [1,100] 的整数
             var num = Math.random();
             num = Math.floor(Math.round(num *= 100))+1;
             document.write(num);
      • 3.属性:
        • PI : 圆周率
      1. Number
      1. String
      1. RegExp:正则表达式对象
        1. 正则表达式:定义字符串的组成规则。
          1. 定义单个字符: []
          • 如:[a]、 [ab]、[a-zA-Z0-9_] :
            特殊的符号代表特殊含义的单个字符:\d:表示单个数字字符[0-9]; \w:单个单词字符[a-zA-Z0-9_]
          1. 量词符号:
               

            *

            表示0次或多次
               

            ?

            表示0次或1次。
               p>+出现一次或多次
               

            {m,n}

            表示m<= 数量 <= n
                 m如果缺省:{,n} 表示最多n次
                n如果缺省:{m,} 表示最少n次
          1. 开始/结束符号:^ :开始 $ : 结束
        1. 正则对象:
          1. 创建
            1. var reg = new RegExp(“正则表达式”);
            1. var reg = /正则表达式/;
          1. 方法
          • test(参数): 验证指定字符串是否符合正则定义的规范
      1. Global:
        1. 特点:全局对象,这个Global中封装的对象不需要对象就可以直接调用。方法名()
        1. 方法:
          1. encodeURI():url编码
          1. decodeURI():url解码
          1. encodeURIComponent():url编码------编码的字符更多
          1. decodeURIComponent() :url解码------编码的字符更多
          1. parseInt():将字符串转为数字
          • 逐一判断每一个字符是否是数字,直到不是数字位置,将前面数字部分转为number
          1. isNaN():判断一个值是都是NaN
          • NaN六亲不认,连自己都不认,NaN参与的 == 比较为false。此时需要isNaN()来进行判断是否为NaN。
          1. eval():将JavaScript字符串,并把它作为脚本代码来执行。
      1. Function:函数(方法)对象
      • 1.创建:
          1. var fun= new Function(形参,方法体) (作为了解)
            var fun1=new Function(“a”,“b”,“alert(a);”)
            // 调用方法
            fun1(3,4);
          1. function 方法名称(形参){ 方法体 }
          1. // 创建方式3
            /* var 方法名 = function(形参){
            方法体
            }
            */
            var fun3 = function (a,b) {
            alert(a+b);
            }
            fun3(3,4);
      • 2.方法:
      • 3.属性:
        • length:代表形参个数
      • 4.特点:
          1. 方法定义时,形参的类型不用写,返回值对象也不用写
          1. 方法是一个对象,如果定义名称相同的方法,后面的会把前面的覆盖
          1. 在JS中,方法的调用只与方法的名称有关,与参数列表无关。
          1. 在方法声明中有一个隐藏的内置对象(数组)arguments,封装了所有的实际参数。
        • function add() {
          var sum = 0;
          for (var i = 0;i<arguments.length;i++){
          sum += arguments[i];
          }
          return sum;
          }
          var sum = add(1,2,5);
          alert(sum);
      • 5.调用:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340