ECMAScript(Ci)

简介

  • 编程语言

  • 人机交互

  • 弱数据类型

作用

  • 网页特效

  • 表单验证

  • 数据交互

  • 服务端编程

组成

  • ECMAScript(基础语法)

  • Web APIs

    • DOM(页面文档对象模型)

    • BOM(浏览器对象模型)

引入方式

  • 内联(行类)<标签名 onclick="alert('这是一个弹窗')"></标签名>

  • 内部<script></script></body>

  • 外部

    • js文件

    • <script scr="地址"></script></body>

结束符

  • 分号可加可不加

输入输出语法

  • 输出

    • 语法

      • 语法1document.write(要输出的内容)

        • 向文档输出

      • 语法2alert(要输出的内容)

        • 页面弹出警告框

      • 语法3console.log(要输出的内容)

        • 控制台输出(调试用)

    • 多内容拼接输出:

      • 一般(内容1,内容2)

      • 字符串拼接(内容1+字符串+内容2)

  • 输入

    • 语法1prompt()

      • 在警告窗弹出

  • 提醒

    • 警示框的内容会跳过页面渲染先被执行

变量

  • 声明语法let 变量名

  • 由字母,数字,下划线,$ 组成(不能以数字开头)

常量

  • 声明语法const 变量名=值

  • 提醒:声明时需赋值

数据类型

  • 分类

    • 基本数据类型(栈里存的值)

      • number数字型

        • NaN(非数字型not a number)

      • string字符串型

        • 模板字符串(’xx${变量名}xx‘) (用反引号包裹,这里的‘’代表``)

      • boolean布尔型

        • 函数Boolean(值)//返回true/false

        • 除了0,所有数字都为真

        • 除了空字符串,所有字符串都为真

        • undefined,null,NAN为假

      • undefined未定义型

      • null空类型

    • 引用数据类型(栈里存的地址>>指向堆里的值)

      • object对象

        • function函数

        • array数组

  • 检测数据类型typeof

    • 作为运算符typeof x

    • 函数形式typeof(x)

  • 类型转换

    • 输入默认为字符串

    • 方式

      • 显式

        • 转数字型Number(X)

        • 转整数parseInt(x)

        • 转实数parseFloat(x)

        • 提醒:只能识别数字开头的字符串,从一个非数字字符起,后面全部舍弃(转整/实数)

      • 隐式

        • 加号&字符串

          • 其他数据类型➕字符串类型>>拼接

          • ➕字符串>>转化为数字型

        • 其他运算符>>转换为数字型

          • ''>>0

          • null>>0

          • undefined>>NAN

          • 特殊:undefined==NAN

运算符

  • 算数运算符

    • +

    • -

    • *

    • /(非整除)

    • %

  • 赋值运算符

    • =

    • +=

    • -=

    • *=

    • /=

    • %=

  • 一元运算符

    • 自增++

    • 自减--

    • 提醒

      • 前置>>先赋值

      • 后置>>先运算>>再赋值

  • 比较运算符

    • >

    • <

    • >=

    • <=

    • ==(值相等)

    • ===(全等=值相等+数据类型相等)

      • NAN!==NAN

    • !=

    • !==

    • 提醒:不同类型比较会发生隐式转换,最终转化为Number

  • 逻辑运算符(返回不是Boolean型)

    • &&

    • ||

    • 逻辑中断

      • 在&&和||判断中,判断顺序从左到右,当前值已经能决定表达式值时,不再运行后续内容

      • 当逻辑运算符前后两个值都为真时,&&返回最后一个值,||返回第一个值

  • 三元运算符(同C)

  • 优先级

    • ()>一元运算符>算数运算符>比较运算符>相等运算符>逻辑运算符(&&>||)>赋值运算符>逗号运算符

语句

  • 关系(表达式包含于语句)

    • 表达式:可以被求值

    • 语句:不一定有值

  • 流程控制语句

    • 顺序结构

    • 分支结构

      • if语句(范围判断)

      • 三元表达式

      • switch(确定值)

        switch(数据)//选择和 数据 全等的 值 执行
        {
            case 值1://值前的空格不能忽略
                代码1
                break;//退出switch
            case 值2:
                代码1
                break;
            default:
                代码3
                break;
               
        }

    • 循环结构

      • while

      • for

数组

  • 声明语法

    • 字面量声明let arr=[x,x,x]

    • new Array

  • 长度arr.length

  • 增加元素:

    • 末尾:arr.push(元素1,元素2)//加到数组末尾,并返回新长度

    • 开头:arr.unshift(新增内容)//加到数组开头,并返回新长度

  • 删除元素:

    • arr.pop()//删除最后一个元素,并返回该元素的值

    • arr.shift()//删除第一个元素,并返回该元素的值

    • arr.splice(起始位置,删除几个元素)

  • 排序:

    • arr.sort()//升序

    • arr.sort(function(a,b){return b-a})//降序

  • 遍历

  • for/while

  • for(let i in arr){}
    //i>>下标
    //arr[i]数组元素

函数

  • 分类

    • 具体名函数

      • 声明语法

        function 函数名 (参数1=值,参数2=值)//给形参默认值
        {
            函数体
            return [返回值1,返回值2]//返回多个值(数组)
        }
* 调用语法`函数名 ()`
  • 匿名函数

    • 声明语法 (把函数赋值给一个变量)

      let 变量名 = function (参数)
      {
          函数体
      }
    • 调用语法变量名()

  • 区别

    • 具名函数可在声明前使用

    • 匿名函数:先声明才能调用

  • 立即执行函数(必需加分号)

    • 语法1(function 函数名(){}) ();

    • 语法2(function 函数名(){} () );

    • 可写成匿名函数

  • 作用域

    • 全局作用域:

      • <script>标签里面定义的变量

      • 在js文件里面定义的变量

    • 局部作用域:函数里定义的(函数内部没有声明,直接赋值为全局变量)

  • 提醒

    • 没有返回值默认undefined

    • 没有定义形参默认值,其默认值为undefined

    • 形参个数可以不等于实参个数

      • 实参多:多的忽略掉

      • 行参多:形参=默认值

对象(类似于结构体)

  • 语法

    • 语法1:

    let 对象名={
        属性名:属性值,
        方法名:函数
    }
    • 语法2let 对象名 = new Object()

  • 组成

    • 属性

      • 调用

        • 语法1对象名.属性名

        • 语法2对象名['属性名']

      • 增加对象名.新属性名=值

      • 删除delete 对象名.属性

    • 方法

      • 声明

       方法名: function(){
           函数体
       }
      • 调用对象名.方法名()

  • 遍历

    • 语法(在for in 中循环控制变量是字符串型

      for(let k in 对象名){}
      //k>>属性名
      //对象名[k]>>属性值
  • 内置对象

  • null>>是一个空对象

Math

  • random

    • 0-10:Math.floor(Math.random()*(10+1))

    • n-m:Math.floor(Math.random()*(m-n+1))+n


ECMAScript(Ci)
http://localhost:8090//archives/jsyu-fa-ji-chu
作者
潘茜茜
发布于
2024年10月18日
许可协议