包装对象
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.函数名最好通过小驼峰写法或者加下划线_来命名_showshowNameshow
4.严格区分大小写
5.同名的函数名会覆盖
如何去使用一个函数
- 函数的使用要先定义,后使用;通过函数调用来去使用定义好的函数;
- 函数调用本质是一个表达式,是表达式就是有值的。这个函数调用的表达式的值是函数的返回值;
- 函数的执行过程:
程序在执行的时候,是一行一行往下执行的。但是函数的定义就相当于一坨字符串一样,它不会去执行,会跳过函数定义往下执行。当碰到函数调用表达式的时候,这会程序会暂停到函数调用表达式这里,然后转而进入函数体内部执行函数定义里面的代码。当函数定义里面的代码执行完成之后,然后再返回(函数调用表达式这里)接着执行。函数调用表达式最终的值,是程序执行完函数定义里面的代码最后的返回值;
函数的参数
函数的参数有两种:
- 一种是函数定义里面的参数: 被称作形式参数,简称形参
- 一种是函数调用里面的参数: 被称作实际参数,简称实参
一个函数可以有参数,也可以没有参数。有没有参数要看我们的函数功能是否需要外部准备参数。如果函数有参数,形参就相当于是在函数定义的函数体内定义了一个变量。形参的作用是用来接收实参传递过来的值。实参作用就是给形参赋值的。
函数传参时候,要注意传递的参数值是基本数据类型还是引用数据类型。
- 如果是基本数据类型,我们称作值传递
- 如果是引用数据类型,我们称作引用传递
值传递特点:函数内部是无法改变外部变量的值的。
引用传递的特点: 函数内部改变,外部也跟着改变,因为外部变量和内部变量引用一样;
函数的返回值
函数的返回值可以有也可以没有;关键是看我们自己需不需要这个返回值。如果需要就要返回,不需要就可以省略。
返回值是函数内部return后面的值;return在函数内部有两个作用:
- 1、函数在第一次碰到return的时候,会立马结束
- 2、函数在结束的时候会把return后面的值,返回给函数调用表达式;
如果函数没有返回值,默认返回undefined;
本文深入解析了JavaScript中字符串的基本特性,包括其作为基本数据类型却能调用方法的原理,详细介绍了字符串长度、索引访问、方法如charAt、concat、slice等的使用,以及函数的定义、使用和参数传递方式。
655

被折叠的 条评论
为什么被折叠?



