day18
一、json
1.是js对象的一种表达方式,可以将json称为特殊的字符串格式。用于前后端的数据交互,是一种数据格式。json要求对象的键都是双引号。
2.XML 指的是可扩展标记语言 用于前后端数据交互,但是现在使用的比较少了,咱们只需要掌握json格式即可 语法采用的是html标记的语法,只不过它的标记是可以自定义的
3.完整网站组成
前端 => 负责界面和一些用户的操作逻辑 => 前端语言:html、css、js
后端 => 数据库,存储数据和处理数据(增删改查) => 服务器 => 后端开发需要在服务器环境下完成 => 后端语言:java、php、python、ruby、go、c、c++、.net、c#、node.js...
4.服务器 是一台超级电脑,只不过它的配置和性能比咱们普通电脑高很多很多倍,一天24小时不能断电 分类: => 物理服务器,价格比较高,需要自己维护,还会消耗你的资源(买、租用) => 虚拟云主机,有些公司买了很多的物理服务器,然后把物理服务器里面的配置进行了不同的分割(存储空间,带宽),根据不同的配置制定价格,然后卖给你 购买虚拟服务器: => 万网(阿里云) => 新网 => 西部数码 => 新浪云 => 华为云 => 百度云 => ...
二、eval()方法
eval() 可以把字符串转成js对象,并会立即执行代码 var str = 'alert("hello")' eval(str) var obj = '{a: 1}' console.log(eval(obj)) 如果使用eval()执行的字符串中含有{}, 它会将{}当成代码块执行,如果不希望将其当成代码块解析,则需要在字符串前后各加一个() var obj = eval("("+'{a:1, b: 2}'+")") console.log(obj)
三、字符串的创建和方法
1.创建: ①字面量 var str = 'hello,张!' console.log(str) console.log(typeof str) // string
②构造函数 var str = new String('hello,张') console.log(str) console.log(typeof str) // object
③包装类(基本数据类型需要使用属性和方法的时候,js内部会把基本数据类型先转成引用数据类型,当你使用完属性和方法后,再转回基本数据类型)共有三种: Number() String() Boolean()
var str = String('hello,张涛!') console.log(str) console.log(typeof str) // string
2.string字符串类型 根据数据类型分为了两大类,分别是基本数据类型和引用数据类型。 数据类型规则限定:基本数据类型不能使用方法和属性,而引用数据类型可以使用。 在开发中,有时候在处理一些业务逻辑的时候,就需要对基本数据进行属性和方法的使用,为解决问题,便提出了包装类(包装类型)
3.字符串方法 字符串也可以称为伪数组,能够使用一些数组的方法。 ① toLowerCase():将字符串中的字母转成全小写 ②toUpperCase():将字符串中的字母转成全大写 ③charAt和[]区别:[]在低版本的IE浏览器里面是不支持的,charAt是被所有浏览器所支持的,兼容性比较好 charAt(index):返回指定下标位置的一个字符。如果没有找到,则返回空字符串; 参数是下标 ④indexOf:返回一个字符串在原始字符串中的索引值(查找顺序从左往右查找)。如果没有找到,则返回-1; 注意点:默认只会找到第一个 ⑤lastIndexOf:在原始字符串中,从右往左查找。如果没有找到,则返回-1; ⑥findIndex() 可以查找到数据的位置 item表示的是数组里面的每一项 index表示的数组的下标 注意点:如果没有找到的话,那么也返回的是-1 ⑦substring():在原字符串,返回一个字符串;不取结束位置,负值会转成0 ⑧slice():提取字符串的片断,并在新的字符串中返回被提取的部分;不包括结束位置。给负值时,可以返回倒数第几个 ⑨substr()从起始索引号提取字符串中指定数目的字符。参数1表示起始位置、值2表示截取的项数 ⑩concat():连接两个或多个字符串,返回连接后的字符串 ⑩①trim()去除左右空白的,trimLeft(),trimRight(),trimStart(),trimEnd() ⑩②charCodeAt() 方法可返回指定位置的字符的 Unicode 编码 ⑩③split(): 将一个字符串切割成若干段,返回一个数组。也就是说将一个字符串转成数组;括号里面可以给空字符串, 会把字符串切割成几份
四、敏感词过滤
replace() 可以把字符串中的某个字符替换成其他的字符 => 参数1表示要被替换的字符是什么(支持正则写法) => 参数2表示的是要替换成那个字符 正则 指的是字符的规则,可以验证字符是否满足于你自定义的规则 => g表示全局匹配(整个字符串里面进行匹配) 范围 => [] 指的是范围,字符和字符之间是或的关系 var str = '陈很色,很喜欢狼人,色狼,哈哈太色了。他喜欢说md' console.log(str.replace(/[色md]/g, '*'))
五、ES5数组方法
1.forEach循环 对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值 是一个函数 函数的参数 => 参数1表示当前的数组元素 => 参数2表示的是当前数组元素的下标 => 参数3表示的是当前的数组本身(不常用,了解)
2.map(callback)映射 + 会遍历当前数组,然后调用参数中的方法,返回当前方法的返回值 + map可以改变当前循环的值,返回一个新的被改变过值之后的数组(map需return),一般用来处理需要修改某一个数组的值 + 参数 => 是一个函数 + 函数的参数 => 参数1表示当前的数组元素 => 参数2表示的是当前数组元素的下标 => 参数3表示的是当前的数组本身(不常用,了解)
3.filter()遍历和过滤 返回符合条件的元素的数组。filter需要在循环的时候判断一下是true还是false,是true才会返回这个元素 参数 => 是一个函数 函数的参数 => 参数1表示当前的数组元素 => 参数2表示的是当前数组元素的下标 => 参数3表示的是当前的数组本身(不常用,了解)
4.find()查找 返回符合条件的数组的元素,而是不返回一个新的数组 参数 => 是一个函数 函数的参数 参数1表示当前的数组元素 => 参数2表示的是当前数组元素的下标 => 参数3表示的是当前的数组本身(不常用,了解)
六、数组去重
利于filter + indexOf实现数组去重 注意点:indexOf()只会返回字符第一次出现的位置 var arr = ['a', 'a', 'a', 'b', 'b', 'f', 'f', 'a', 'a', 'b', 'f', 'c', 'd', 'c', 'd', 'c'] var result = arr.filter(function(item, index){ /* a 0 === index 0 满足,把a放入要返回给外界的数组 a 0 === index 1 不满足,就过滤掉了 a 0 === index 2 不满足,就过滤掉了 */ return arr.indexOf(item) === index }) console.log(result)
七、模糊搜索
1.include() 查找字符串里面是否存在某个字符,如果存在就返回true,不存在就返回false
2.startsWith() 查找字符串里面开头是否存在某个字符
3.endsWith() 查找字符串里面结尾是否存在某个字符
八、innerHTML和innerText
1.可以用来获取标记的内容和设置标记的内容(可以解析标记)
2.innerText 可以用来获取标记的内容和设置标记的内容(不能解析标记)