JavaScript复习笔记3(字符串和函数)

目录

      • 字符串
        • 字符串是一个基本数据类型,不是对象,为什么可以调用方法
        • 字符串的长度
        • 字符串方法
      • 函数对象Function
        • 什么是函数
        • 函数的作用
        • 如何去定义一个函数
        • 如何去使用一个函数
        • 函数的参数
        • 函数的返回值


包装对象

Object 是所有对象的基础
工具对象: Math
內建对象: Array Date Function RegExp(正则)
包装对象: Number String Boolean
自定义对象:面向对象里面会介绍

字符串

字符串是一个基本数据类型,不是对象,为什么可以调用方法

字符串确实是一个基本数据类型,它本来也不存在什么方法,当它调用方法的时候,其实不是这个基本数据类型的字符串调的方法。而是在它调用方法的时候,浏览器会默认在内部给这个字符串创建一个包装对象,这个包装对象的名字和字符串名字相同。其实是这个包装对象在调用方法,而不是基本数据字符串。当调用完成之后,字符串包装对象会立马销毁,当进行下一行的时候,里面的字符串还是我们的基本数据类型字符串。

字符串的长度

字符串也有长度和索引(下标),只是字符串的长度无法更改;
字符串也可以通过下标去访问字符串当中的子串(字符),但是只能访问不能更改;

字符串方法

charAt()

  • 功能:查找特定位置的字符
  • 参数:给一个下标位置(索引)
  • 返回值:返回这个位置上的字符

charCodeAt()

  • 功能:查找特定位置的字符的编码
  • 参数:给一个下标位置(索引)
  • 返回值:返回这个位置上的字符的编码

concat()

  • 功能:拼接两个或者多个字符串
  • 参数:一个或者多个字符串
  • 返回拼接好的字符串,不影响原串

不常用,因为我们有+

字符串的截取slice substr substring

slice()substring()

  • 功能:在原串的基础上截取子串
  • 参数:可以是一个,也可以是两个。第一个参数永远代表截取的起始位置,第二个参数代表的是结束位置,但是不包含结束位置的字符。如果第二个参数没有,就是从起始位置到末尾
  • 返回值:返回截取好的子串,不影响原串
  • 注:正常情况下,这两个用法一样,也就是说第一个位置比第二个位置小。当第一个位置比第二个位置大的时候,slice会返回空字符串,而substring还会返回正确的值,因为substring会识别这两个参数,永远从小的到大的去截取。

substr()

  • 功能:在原串的基础上截取子串
  • 参数:可以是一个,也可以是两个。第一个参数永远代表截取的起始位置,第二个参数代表截取的个数。如果第二个参数没有,就是从起始位置到末尾
  • 返回值:返回截取好的子串,不影响原串

indexOf()lastIndexOf()

  • 功能:查找子串在原串当中第一次出现的位置
  • 参数:给一个子串
  • 返回值:返回子串在原串当中第一次出现的位置。如果原串当中没有,返回-1
  • 注:indexOf是从前往后查,lastIndexOf是从后往前查,查找的时候用的是===

大小写字符串转换

toLowerCase()

  • 功能:将原串复制一份转为全小写
  • 参数:无参数
  • 返回值:返回转化后的小写字符串,不影响原串

toUpperCase()

  • 功能:将原串复制一份转为全大写
  • 参数:无参数
  • 返回值:返回转化后的大写字符串,不影响原串

替换

replace()

  • 功能:用新的串去替换旧的子串
  • 参数:两个,第一个旧的子串,第二个新的串
  • 返回值:返回替换后的字符串,不影响原串

去掉前后空格

trim()

  • 功能:复制一份去掉字符串前后的空格
  • 参数:无参数
  • 返回值:返回去掉前后空格的字符串
  • trimLeft()trimRight() 可以单独去掉左边的空格 或者 右边的空格

把字符串转数组

split()

  • 功能:把一个字符串复制一份按照指定的子串进行切割,转化为数组
  • 参数:指定一个子串
  • 返回值:返回切割后转化好的数组

函数对象Function

什么是函数

具有特定功能的有名或者无名代码块(JS当中)

函数的作用

  • 函数可以解决代码冗余
  • 函数可以让代码复用
  • 函数可以让工程模块化

如何去定义一个函数

定义函数的三种方式

  • function func(){}

这种方式是我们常用的方式,通常我们这种定义方式叫传统函数定义方式

  • var f1 = function(){}

这种方式是赋值的方式定义一个函数,这个函数是f1; 本质上和第一种一样;

  • var f1 = new Function('a', 'b', '函数体代码块')

这种方式是通过构造函数定义函数,这样的方式不常用,但是可以来定义函数;

function sum1(a, b) {
    return a + b;
}
console.log(sum1(2, 3));
var sum2 = function(a, b) {
    return a + b;
}
console.log(sum2(2, 3));
var sum3 = new Function('a', 'b', 'return a + b;');
console.log(sum3(2, 3));

注意:

1.函数名不要包含特殊字符
2.函数名最好要有明确的含义
3.函数名最好通过小驼峰写法或者加下划线_来命名_show showName show
4.严格区分大小写
5.同名的函数名会覆盖

如何去使用一个函数

  • 函数的使用要先定义,后使用;通过函数调用来去使用定义好的函数;
  • 函数调用本质是一个表达式,是表达式就是有值的。这个函数调用的表达式的值是函数的返回值;
  • 函数的执行过程:

程序在执行的时候,是一行一行往下执行的。但是函数的定义就相当于一坨字符串一样,它不会去执行,会跳过函数定义往下执行。当碰到函数调用表达式的时候,这会程序会暂停到函数调用表达式这里,然后转而进入函数体内部执行函数定义里面的代码。当函数定义里面的代码执行完成之后,然后再返回(函数调用表达式这里)接着执行。函数调用表达式最终的值,是程序执行完函数定义里面的代码最后的返回值;

函数的参数

函数的参数有两种:

  • 一种是函数定义里面的参数: 被称作形式参数,简称形参
  • 一种是函数调用里面的参数: 被称作实际参数,简称实参

一个函数可以有参数,也可以没有参数。有没有参数要看我们的函数功能是否需要外部准备参数。如果函数有参数,形参就相当于是在函数定义的函数体内定义了一个变量。形参的作用是用来接收实参传递过来的值。实参作用就是给形参赋值的。

函数传参时候,要注意传递的参数值是基本数据类型还是引用数据类型。

  • 如果是基本数据类型,我们称作值传递
  • 如果是引用数据类型,我们称作引用传递

值传递特点:函数内部是无法改变外部变量的值的。
引用传递的特点: 函数内部改变,外部也跟着改变,因为外部变量和内部变量引用一样;

函数的返回值

函数的返回值可以有也可以没有;关键是看我们自己需不需要这个返回值。如果需要就要返回,不需要就可以省略。
返回值是函数内部return后面的值;return在函数内部有两个作用:

  • 1、函数在第一次碰到return的时候,会立马结束
  • 2、函数在结束的时候会把return后面的值,返回给函数调用表达式;

如果函数没有返回值,默认返回undefined;

你可能感兴趣的:(前端学习笔记)