js基础

32 阅读5分钟

函数进阶:

  1. 变量的作用域(空间有效范围)。

在js中 ,只有全局作用域和函数作用域两种。

  • 如果一个变量没有定义在任意函数之内,则为全局作用域。全局作用域是从声明位置开始,一直到脚本结束。
  • 定义在函数对之内的变量,则为函数作用域。函数作用域从声明位置开始,到函数结束。函数中的变量会覆盖全局的同名变量。函数参数也属于函数作用域,其作用域从函数开始到函数结束。
  • 在函数中,可以使用全局变量。
  1. 变量的定义提升

不管是在全局作用域中,还是在函数作用域中,使用var定义的变量,其定义默认会提升到脚本或函数的最前面。

  1. 变量的生命周期(时间作用域)
  • 全局作用域变量:从定义变量的位置开始,直到脚本所以代码执行结束。
  • 函数作用域变量: 从定义变量的位置开始,一到函数执行结束(return,要么所有代码执行结束)。
  1. 匿名函数以及函数表达式

匿名函数:没有名字的函数,如果此函数仅在定义处使用,其它地方不会调用。

在js中,变量,参数,函数的返回值,都可以是函数。

在js中,函数是一等公民。

  1. 递归调用(选讲)

一个函数,直接或间接调用自身。想要函数递归停止,必须在递归函数中设置退出条件。

规律;

  • 任何递归都可以转换为循环来实现,但是有时候,使用递归更容易理解,简单方便。
  • 有一些场景使用递归比较方便,使用循环则非常复杂。
  1. 函数参数的默认值。参数可以使用赋值表达式定义默认值。

永远不要高估用户的试探性。(可能会填入任何东西);

  1. 函数的参数,难以保证是预期的数据类型,所以在函数逻辑之前,根据实际情况,需要对参数类型进行判定或校验。

可用 , 易读


对象进阶

使用构造函数来创建对象,构造函数相当于一个模板。模板就是创建的对象的类型。

instanceof 判断某个对象是否属于某个类型。

js中的内置对象:

  1. String
  2. Array
  3. Date

js特性:基本数据类型可以访问与之相对应的对象的属性和行为,在访问时,自动将基本数据类型转换为对象类型。

string ->String

number -> Number

boolean -> Boolean

字符串操作均不影响原字符串。

String对象常用方法:

  1. length属性,返回字符串的长度,只读。

  2. charAt(n) 显示索引为n的字符 n 从0开始。

  3. concat()与目标字符串进行拼接。

  4. startsWith() endsWith() : 是否以指定的字符串开头或结尾。

  5. indexOf 返回字符串在当前字符串第一次出现的位置,如果存在,则大于等于0,如果不存在,返回-1。当指定第二参数的时候,表示从哪个位置开始向前查找。

  6. lastIndexOf 返回字符在当前字符串最后一次出现的位置,如果存在,则大于等于0,如果不存在,返回-1.当指定第二参数的时候表示从那个位置开始向前查找。

  7. replace(a,b)字符串替换,将字符串中的a替换成b。如果a的类型是字符串,则只替换一次,a也可以是正则表达式。(/a/g)表示替换所有的a

  8. split()函数,按照指定的分隔符将字符串分割成一个数组。常用。

  9. substr(a,b)截取字符串,从a开始截取,一共截取b个字符。

  10. substring(a,b)截取字符串,从a开始截取到b,包含a,但不包含b(而是不包含最后一个)

  11. toLowerCase() 及toUpperCase() 将字符串转换成小写,及大写

  12. trimLeft(),trimRight(),trim() 去除字符串两端的空白。

红色表示表示对原数组不产生影响

绿色表示产生影响

数组的常用方法:

  1. length属性,只读。
  2. concat()与目标数组进行拼接。返回一个新的数组,原数组不变。
  3. forEach()函数,对数组中的每一个元素进行遍历处理。参数是一个函数,此函数用于对每个数组元素进行处理。
  4. indexOf和lastIndexOf:在数组中查找指定的元素,找到则返回其索引,找不到返回-1。支持第2个参数,如果有第2个参数,表示从指定的第2个参数的位置开始查找。
  5. join函数是split函数的逆操作。将数组元素使用指定的分隔符连接起来
  6. push在数组的尾部添加一个值
  7. pop在数组的尾部弹出一个值,作为函数返回值,同时在数组中将此元素删除。
  8. unshift在数组的头部添加一个值。
  9. shift在数组的头部弹出一个值,作为函数返回值,同时在数组中将此元素删除。
  10. reverse()将数组的元素首位颠倒。原数组也会发生改变。
  11. sort()对数组的元素进行排序。参数是一个函数。
  12. slice(start,end)截取数组元素,返回截取后的数组,从开始位置截取到结束位置
  13. splice()函数,从开始位置截取,一共截取多少个,同时会影响原数组。

1,