• JavaScript基础


    一、JavaScript简介

    • 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客户端执行的语言)。

    • Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言。Sun和Netscape共同完成,后改名叫JavaScript。

    • 微软随后模仿在其IE3.0的产品中搭载了一个JavaScript的克隆版叫Jscript。

    • 为了统一三家,ECMA(欧洲计算机制造协会)定义了ECMA-262规范.国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。

    • ECMA-262 是 JavaScript 标准的官方名称。

    • JavaScript 是脚本语言

    • JavaScript 是一种轻量级的编程语言。

    • JavaScript 是可插入 HTML 页面的编程代码。

    • JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

    二、JavaScript引入方式

    1. 在script标签内写代码

    2. 引入额外的JS文件

    三、JavaScript语言规范

    1. 注释

      // 这是单行注释
      
      /*
      这是
      多行注释
      */
    2. 语法

    1. JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。

    2. 声明变量使用 var 变量名; 的格式来进行声明

    3. JavaScript中的语句要以分号(;)为结束符。

    var name = "Alex";
    var age = 18; 

    注意:

    变量名是区分大小写的。

    推荐使用驼峰式命名规则。

    保留字不能用做变量名。

    abstract
    boolean
    byte
    char
    class
    const
    debugger
    double
    enum
    export
    extends
    final
    float
    goto
    implements
    import
    int
    interface
    long
    native
    package
    private
    protected
    public
    short
    static
    super
    synchronized
    throws
    transient
    volatile
    JavaScript关键字

    四、JavaScript数据类型

    1. 动态类型

      JavaScript拥有动态类型
      
      var x;  // 此时x是undefined
      var x = 1;  // 此时x是数字
      var x = "Alex"  // 此时x是字符串 
    2. 数字类型

      JavaScript不区分整型和浮点型,就只有一种数字类型。
      
      var a = 12.34;
      var b = 20;
      var c = 123e5;  // 12300000
      var d = 123e-5;  // 0.00123
    3. 布尔类型

      var a = true;
      var b = false;
      

        区别于Python,true和false都是小写。    ""(空字符串)、0、null、undefined、NaN都是false。

    4. 字符串类型

      var a = "Hello"
      var b = "world;
      var c = a + b; 
      console.log(c);  // 得到Helloworld
      

        

      方法 说明
      .length 返回长度
      .trim() 移除空白
      .trimLeft() 移除左边的空白
      .trimRight() 移除右边的空白
      .charAt(n) 返回第n个字符
      .concat(value, ...) 拼接
      .indexOf(substring, start) 子序列位置
      .substring(from, to) 根据索引获取子序列
      .slice(start, end) 切片
      .toLowerCase() 小写
      .toUpperCase() 大写
      .split(delimiter, limit) 分割
    5. 数组

      类似于Python中的列表。
      
      var a = [123, "ABC"];
      console.log(a[1]);  // 输出"ABC"
      

        

      方法 说明
      .length 数组的大小
      .push(ele) 尾部追加元素
      .pop() 获取尾部的元素
      .unshift(ele) 头部插入元素
      .shift() 头部移除元素
      .slice(start, end) 切片
      .reverse() 反转
      .join(seq) 将数组元素连接成字符串
      .concat(val, ...) 连接数组
      .sort() 排序
      /*如果调用sort方法时没有传入参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
      
      如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
      
      若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
      若 a 等于 b,则返回 0。
      若 a 大于 b,则返回一个大于 0 的值。
      */
      
      // 根据上面的规则自行实现一个排序函数:
      
      
      function sortNumber(a,b) {
        return a - b
      }
      
      // 调用sort方法时将定义好的排序函数传入即可。
      stringObj.sort(sortNumber)
      复制代码
      sort排序问题


      遍历数组的方法

      var a = [10, 20, 30, 40];
      for (var i=0;i<a.length;i++) {
        console.log(i);
      }
    6. null和undefined

      • null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;

      • undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。

      null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。

    7. 查询类型的方法

      typeof "abc"  // "string"
      typeof null  // "object"
      typeof true  // "boolean"
      typeof 123 // "number"

      typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。

      对变量或值调用 typeof 运算符将返回下列值之一:

      • undefined - 如果变量是 Undefined 类型的
      • boolean - 如果变量是 Boolean 类型的
      • number - 如果变量是 Number 类型的
      • string - 如果变量是 String 类型的
      • object - 如果变量是一种引用类型或 Null 类型的

    五、运算符

    • 算数运算符

      + - * / % ++ --
    • 比较运算符

      > >= < <= != == === !==

      注意:
      1 == “1”  // true
      1 === "1"  // false
    • 逻辑运算符

      &&  与
       ||   或 
      !     非
    • 赋值运算符

      = += -= *= /=
      

        

    六、流程控制

    1.  if-else

      var a = 10;
      if (a > 5){
        console.log("yes");
      }else {
        console.log("no");
      }
    2. if -> else if -> else

      var a = 10;
      if (a > 5){
        console.log("a > 5");
      }else if (a < 5) {
        console.log("a < 5");
      }else {
        console.log("a = 5");
      }
    3. switch

      d = 2;
      
      switch(d){
          case 0:
              console.log('000000000');
              break;
          case 1:
              console.log('111111111');
          case 2:
              console.log('222222222');
      }  
    4.  for

      for(i = 0;i<10;i++){
          console.log('---');
      }
    5. while

      var i = 0;
      while (i < 10) {
        console.log(i);
        i++;
      }
    6. 三元运算

      var a = 1;
      var b = 2;
      var c = a > b ? a : b
      

        

  • 相关阅读:
    从零开始入门 K8s | 有状态应用编排
    OAM 深入解读:OAM 为云原生应用带来哪些价值?
    你不得不了解 Helm 3 中的 5 个关键新特性
    CNCF 公布 2020 年 TOC 选举结果 | 云原生生态周报 Vol. 36
    调度系统设计精要
    Spring的IOC容器第一辑
    JavaScript工作体系中不可或缺的函数
    教你五步制作精美的HTML时钟
    web前端vertical-align的作用及对象详解
    JavaScript中常见的10个BUG及其修复方法
  • 原文地址:https://www.cnblogs.com/fu-yong/p/8535104.html
Copyright © 2020-2023  润新知