**创建一个函数,用来检查一个字符串是否是回文(用两种方式来解决)
一个字符串从前往后读 和从后往前读是一样的,那么它就是回文
abcba
如果字符串两头的字符相等,且中间的字符串是个回文,这个字符串就是回文
- aa相等 且bcb是回文
-**
2.正则语法:
. 表示任意字符
* - 在正则表达式中,使用\作为转义字符
* . --> .
* \w 任意的单词字符,相当于 [A-Za-z0-9_]
* \W 除了单词字符,相当于 [^A-Za-z0-9_]
* \d 任意数字 [0-9]
* \D 除了数字 [^0-9]
* \b 单词边界
* \B 除了单词边界
* \s 空格
* \S 除了空格
3.正则的字符串语法使用:
search()
* - 可以去字符串中搜索指定的内容
* - 该方法可以传递一个正则表达式,
* 可以检查字符串中是否含有符合正则表 达式的内容
*
* - 返回值:
* 返回第一个符合条件的内容的索引
* 如果没有,返回-1
split()
- 用来将一个字符串拆分一个数组
- 可以根据正则表达式去拆字符串
replace()
* - 用来使用新的内容替换字符串中旧内容
* - 参数:
* 1.被替换的内容(支持正则表达式)
* 2.新的内容
* - 注意:
* 默认情况下,replace()只会替换第一个符合条件的内容,
* 如果希望替换所有的内容,则需要使用匹配模式 g
match()
* - 可以将字符串中符合正则表达式的内容提取出来
* - 它会将匹配到的结果保存到一个数组中返回
3. JSON
**JSON(JavaScript Object Notation)
* - JS对象表示法
* - JSON实际上就是一个字符串,
* 它有一个特殊的格式(格式类似于JS对象)
* - 使用JSON格式表示的数据,可以转换位任何语言中的对象,
* 从而达到数据交换的目的
*
*
* - JSON的格式:
* 1.JSON的格式和JS对象基本是一样的
* 不同点在于JSON的属性名,必须加双引号
* 字符串也必须使用双引号,不能使用单引号
* 2.JSON中支持的数据类型
* 1. 字符串(string)
* 2. 数值(number)
* 3. 布尔值(boolean)
* 4. 空值(null)
* 5. 对象(object)
* 6. 数组(array)
*
* 3.JSON的形式:
* JSON对象
* {
*
* }
*
* JSON数组
* [
*
* ]
*
JSON
- 用来操作JSON
- 将JS对象转换位JSON字符串
JSON.stringify(js对象)
- 将一个js对象转换为一个JSON字符串
- 将JSON字符串转换位JS对象
JSON.parse(json串)
- 将一个JSON转换为js对象**
4.闭包
闭包就是能访问到外部函数变量的内部函数
* - 闭包可以用来将一些不愿意被别人访问的变量藏起来
* - 闭包构成的要件:
* 1.必须有函数的嵌套
* 2.内部函数要引用外部函数中的变量
* 3.必须将内部函数作为返回值返回
*
* - 闭包的生命周期
* 闭包在外部函数调用时创建,
* 调用一次就产生一个
* 闭包在内部函数被垃圾回收时销毁
5.箭头函数
- 语法:
* 形参 => 返回值
*
* (参数1,参数2) => 返回值
*
* 形参 => {
* 语句…
* return 值;
* }
*
* this到底是谁?
* 根据函数调用的方式不同,this的值也不同:
* 1.以函数的形式调用,this是window
* 2.以方法的形式调用,this是调用方法的对象
* 3.以构造函数的形式调用,this是新创建的对象
* 4.以call和apply调用,this是它们的第一个参数
* 5.箭头函数的this,由外层作用域决定
6.let补充
1.let不能重复声明变量 var可以
* 2.let不能在初始化前访问变量 var可以
* 3.var声明的全局变量会添加到window对象中,let不会
* 4.let声明的变量有块作用域 var没有