JS的基础

         1、编程中的三大流程控制结构

                >> 顺序流程结构:最基本的流程,按照代码的顺序逐行执行。

                >> 选择流程结构:当代码执行到某一段的时候,会根据条件进行判断,然后执行条件成立的代码。

                >> 循环流程结构:根据条件,重复的执行某一段代码,当达到某一个条件时就会停止执行。

          2、if 

                >> if 语句

                  if(条件表达式,必须返回 true 或者 false) {

                    // 当上方小括号内表达式返回为 true 时,执行这里的代码

                  }

                  var a = prompt('请输入一个数字');

                  (a > 10) {

                    console.log('a大于 10');

                  }

                >> if else 语句

                  if(条件) {

                    // 条件成立的时候执行的代码

                  } else {

                    // 条件不成立的时候执行的代码

                  }

                  var a = prompt('请输入一个数字');

                 if(a > 10) {

                    console.log('a大于10');

                  } else {

                    console.log('a小于10');

                  }

          注意:与三元运算符功能相同,但是结构比三元简单易懂,但是一般建议采用三元

        if else if 语句

                  if(条件表达式1) {

                    // 条件表达式1为 true 的时候执行的代码

                  } else if(条件表达式2) {

                    // 条件表达式2为 true 的时候执行的代码

                 } else if(条件表达式n) {

                    // 条件表达式n为 true 的时候执行的代码

                  } else {

                    // 以上条件都不成立时执行的代码

                  }

                  注意:满足当前条件后,剩余的条件将不再执行(判断)

         3、switch(主要用于判断值是否等于给定值)

              switch(判断的变量值) {

                      case 值1:

                        // 执行的代码1

                        break; // 这里必须添加 

                      case 值2:

                        // 执行的代码2

                        break;

                              ...

                     default:

                            // 以上条件都不满足时执行的代码

                    }

        4.循环

                在满足一定条件的时候,重复执行一段代码,当不再满足条件时停止循环,重复执行的程序段称为循环体。

         4.1、while 循环

                先验证,再循环。

                while(条件) {

                          // 循环体

                          // 迭代

                }

      4.2 do while

                无论循环的判断条件是否为真,循环至少执行一次,然后再判断是否满足继续循环的条件。

                do while 和 while 的区别:

                  * while 是先判断条件,然后再执行;

                  * do while 是先执行,然后再判断,无论条件是否成立,至少执行依次。

      

      4.3、for 循环

                应用最广泛的循环语句,是一种先验证的循环。

                for(初始值;条件;迭代) {

                          // 循环体

                }

                   break:立即退出循环

                   continue:结束本次循环,然后接着继续后面的循环。

        5.Math

                Math:是一个内置对象,拥有一些数学常数属性和一些数学函数方法。

                常见 API

                        Math.PI :圆周率

                        Math.round(x):返回四舍五入后的整数

                       Math.ceil(x):向上取整

                        Math.floor(x):向下取整

                        Math.abs(x):绝对值

                       Math.max(x,y,z...):返回最大值

                        Math.min(x,y,z...):返回最小值

                        Math.pow(x, y):返回一个数的y次幂

                        Math.random():返回一个介于0到1之间的随机数

        6.对象

                >> 属性

                          obj.name = 值

                          obj.name

                >> 方法

                          obj.sayHi = function() {}

                          obj.sayHi();

        7.数组

                 7.1 理解

                          属于对象类型,数组是按一定顺序排列,具有某种相同性质的数据集合。

                          数组中的元素类型原则上可以是任意数据类型。

                7.2 创建数组:

                          >> new(构造函数)

                            new Array()

                         >> 字面量

                            []

                7.3 数组的下标

                          数组中每个元素的标记,从0开始,依次增大。

                7.4 取出数组的值

                          数组[下标]

                7.5 数组的长度

                          数组.length

                7.6 数组的方法

                        push() 向数组最后一位添加元素

                        pop() 删除数组最后一位元素

                        unshift() 始终向数组第一位插入元素

                        shift() 始终删除数组的第一位元素

                        splice(下标,删除的长度,增加的元素...)

                        reverse()颠倒数组中元素的顺序

                        sort() 对数组元素进行排序,默认是按照字母升序排列

                        sort(function(a, b) {

                                return a-b // 升序    return b-a // 降序

                         })

                        concat() 数组合并

                        indexOf() 判断当前数组是否包含某个指定的值,如果是返回下标,否则返回-1,并且只会匹配到第一个;

                        lastIndexOf() 从数组最后开始查找,匹配到返回下标,否则返回 -1;

                        join() 根据规则将数组元素拼接为字符串

                7.7 数组遍历

                         >> for

                              for(var i = 0; i < 数组的长度; i++) {

                                     数组[i]

                             }

                         >> Array.forEach(function(item, index, array) { // 遍历数组

                                  // item:数组元素

                                  // index:对应下标

                                  // array:数组本身

                        })

                        >> Array.map(function(item, index, array){}) // 遍历数组,并且根据规则返回新数组

                        >> Array.some(function(item, index, array){}) 

                        >> Array.every(function(item, index, array){}) 

                        ............

         8、函数的认识

                        函数是定义一次但是却可以调用或执行任意多次的一段JS代码。

              8.1、函数的作用:

                        >> 代码重用,提高代码使用效率,避免在程序中出现过多的重复性代码;

                        >> 以功能模块将代码分离,提高代码的可读性;

              8.2、函数的使用

                        >> 函数声明:

                                  function 函数名(参数) {

                                           // 函数体-- 要执行的JS语句

                                  }

                      >> 无参函数:在调用无参函数的时候,不需要给函数的参数传递数据

                      >> 有参函数:调用此类函数需要给函数传递参数。

              8.3、函数的调用

                    >> 直接调用

                          函数名();

                  >> 可以在一个函数内部,调用其他函数

                          funtion foo() {

                                    // ...

                                    bar();

                          }

                >> 函数内部调用自己(递归函数)

                          function foo() {

                                    // ...

                                    foo();

                          }

                 >> 对象的方法

                         对象.方法名()

              8.4、参数的理解

                >> 形参:

                         在定义函数时给函数设置的参数,该参数会在函数内部使用(可以理解为函数内部的变量)

                         function 函数名(形参) {}

                >> 实参:

                          调用函数时,给函数传递的具体的值(即给形参赋值)。

                          函数名(实参);

        8.5、返回值函数

                        是指调用函数后能得到一个结果。

                        关键词: return:

                        * 使用关键词 return 来返回结果,该结果可以是常量,也可以是变量,甚至是一个函数;

                        * 如果函数没有明确的返回值,那么返回值为 undefined;

                        * 在 return 之后的代码不再执行,即停止函数继续执行;

        

              8.5.1、函数的注释方式

                        * 函数的作用

                        * @method 函数名

                        * @ param { 参数类型} 参数名 参数说明

                        * @return {返回值类型} 返回值说明

           8.5.2、arguments 对象

                        >> 产生位置:只能在函数内部访问的一个对象,该对象会记录函数实参传递的个数,该对象的结构与数组类似。

                        >> 说明:

                                  JS 不会验证传给函数参数的个数是否等于形参的个数,可以接受任意数量的实参,遗漏的参数将会传递 undefined 给形参,多余的参数可以忽略。

 

        8.6、创建函数的方式:

                >> 函数声明:

                          function 函数名(形参) {} // 具名函数

                >> 函数表达式:

                          var 变量 = function(形参) {} // 匿名函数

                          注意:不能在变量赋值之前调用该函数。

                  >> 对象方法

                            对象.方法名 = function(形参) {}

          

      8.6.1、提升

                >> 函数提升:

                          通过函数声明的方式创建的函数,会被自动提升至当前作用域最顶层。

                >> 变量提升

                          通过关键字 var 声明的变量,也会将声明的变量提升至当前作用域最顶层。

      8.6.2、作用域

                        是指一个变量或者函数可以在哪个范围内使用。

                >> 全局变量/全局函数:

                         定义在函数外部的变量(函数)称为全局变量,可在任意地方使用。

                >> 局部变量/局部函数

                          定义在函数内部的变量(函数)称为局部变量,只能在函数内使用。

                         注意(重点):在当前作用域的最顶层声明变量、声明函数。

 9、字符串方法

        9.1 创建字符串的方法

                  >> 字面量的方式创建

                            var str = 'abc';

                  >> 构造函数的方式创建:

                            var str = new String('abc');

        9.2 在 js 中一切皆对象。

        9.3 字符串的属性

                  .length 获取字符串的长度。

        9.4 方法:

                  >> charAt(index):返回指定位置的字符,从 0 开始的。

                  >> substring(n, m):返回 n~m之间的字符,包含 n,不包含 m。

                  >> substr(n, length):截取字符串,从n开始,总共截取长度为 length。

                  >> slice(n, m):用法与 substring一致。

                  >> indexOf(str, n):从n开始搜索str在字符串中首次出现的位置。

                  >> match(str):查找字符串中特定的字符,如果找到则返回这个字符,否则返回 null。

                  >> replace(a, b):用字符串b替换字符串a。

                  >> search(a):用于检索字符串中指定字符的位置,如果没有找到返回-1.

                  >> split(str):用于将字符串分割为数组。

                  >> toLowerCase():将字符串转为小写。

                  >> toUpperCase():转为大写字母。

                  >> concat(str1, str2, ...):合并字符串

                  >> trim():去掉字符串前后空格,无法去除字符串中间的空格。

        10、什么是正则表达式?

                使用一种特定的符号来描述该组字符串的方法。

               10.1、作用?

                        * 用于验证注册、登录时用户输入的信息;

                        * 关键词过滤  

              10.2、语法:

                        >> 构造函数

                             var 变量 = new RegExp('模式字符串', '修饰符');

                        >> 字面量方式:

                            var 变量 = /模式字符串/修饰符;

              10.3、修饰符

                       >> g

                                  全局匹配,查找所有符合条件的;

                        >> i

                                  忽略大小写;

                        >> m

                                  多行匹配。

              10.4、正则验证规则

                        /^ 匹配开头

                        $/ 匹配结束

                        \d 匹配一个数字

                        \D 匹配一个非数字

                        \w 匹配一个可以组成单词的字符,包含字母、数字、下划线

                        \s 匹配一个空白字符

                        \n 匹配换行符

                        . 匹配换行符以外任意字符

                        \b 匹配一个单词边界,也就是单词和空格之间的位置

                        [xyz] 匹配这个集合中任意一个字符

                        [^xyz] 不匹配这个集合中的任意一个字符

                        [a-zA-Z] 

                        [a-zA-Z0-9]

                        ? 匹配前面的字符出现0次或者1次

                        * 匹配前面的字符出现0次或者多次

                        + 匹配前面的字符出现1次或者多次

                        x|y 匹配x或者y

                        {n} 精确匹配前面字符出现 n 次

                        {n,m} 匹配n到m次

              10.5、正则表达式方法:

                        >> pat.test(str)

                                  直接返回布尔值,用于判断正则是否匹配成功;

                       >> exec()

                                  检索字符串中指定的值,返回一个数组,在其中存放结果;

                        >> compile() 

                                  改变检索模式。

              10.6、支持正则的字符串的方法:

                                search()

                                match()

                                replace()

                                split()

        11 ECMAScript(核心语法)

               >> 数据类型(重点)

                          布尔值的转换

                >> 变量

                >> 运算符

                          ++

                          --

                          +=

                          !

                          ? : 

                >> 循环、条件

                          双重for(难点)

                >> 函数(重点)

                          提升

                          作用域(全局变量、局部变量)

                          arguments 对象(难点)

                >> 数组(重点)

                >> 字符串

                >> 正则表达式(难点)

            11.1、对象(未来)

            11.2、ECMAScript 还包含哪些

                        >> 划分

                                  ES3

                                  ES5

                                  ES6(ES2015)

                                  ES7

                                  ES8

                                  ES9

                        >> 新语法

                                  变量声明:const,let

                                  箭头函数、函数默认值

                          第七种数据类型:symbol

                                  扩展符

                                  解构

                                 模板字符串

                                  promise

                                  async

                                  class

         12、JS 组成?

                > ECMAScript(核心语法)

                >> DOM(document object model)(文档对象模型)

                >> BOM(浏览器对象模型)

                12.1、DOM

                        是一个使程序和脚本能够动态访问和更新文档内容、样式、结构的接口。

                        >> DOM 的原理的是将文档装入内容,以节点的形式解析为节点树。

                        >> DOM 提供相应的 API 对节点树进行增删改查,实现动态网页。

                12.2、BOM

                     是浏览器对象模型。

                      12.2.1、能做什么?

                                >> 可以操作浏览器窗口

                                >> 提供导航对象

                                >> 提供定位对象

                                >> 提供屏幕相关对象

                                >> 提供cookie的支持

                      12.2.2、window 对象

                      12.2.3、 理解

                          该对象是基于浏览器的 js 顶层对象,在调用他的子对象时可以不用显示的指明window对象。

                     12.2.4、 全局函数/对象

                         alert() // window.alert()

                          document

                  12.2.5、 window.open(url, target, 新窗口的特性)

                          打开一个窗口

                          window.close() // 关闭当前窗口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值