多语言展示
当前在线:186今日阅读:100今日分享:18

字符串的概述

# 字符串[toc]## 1. 创建字符串(掌握)* JS中的字符串是不可变的!* 任何涉及到字符串变化的操作都不会改变原始字符串* 都是从新创建一个新的字符串JS中有两种字符串。### 1. 基本类型的字符串1.字符串直接量```var str = 'MR_LP'; //str 基本类型的字符串console.log(typeof str);//弹出: String```2.转换函数(注意:没有new 关键字的)```var str = String(123); //把基本数据类型的Number//转化为基本数据类型的Stringconsole.log(typeof str); // 弹出 : String```3.引用类型* 通过new 关键字来使用String()构造方法* 获取到的一个对象,是引用类型Object....```var str = new String('asd');console.log(typeof str);//弹出:Object```2. 对象类型### 2. 字符串的length属性(了解)字符串的length 属性的值表示的是字符串中字符的个数```var str1 = 'MR_LP'; //5vvar str2 = '大家新年好';//5```* length 是属性,所以在使用的时候不需要添加括号* 只有调用方法或者函数时候,才会添加括号# 3. 字符串常用方法(重点)## 1. 字符相关方法 s.charAt(index) 参数: index * 必选参数 表示字符串中某一个位置的数字 字符在字符串中的下标 返回值: * 返回的是指定位置的字符 * JS中没有字符类型 * 返回的实际是一个长度为1 的字符串 大家也可以想象为一个数组,具体下标是0 , 直到最后一个下标(str.length -1)``` var str = '你好呀李先生'; console.log(str.charAt(0));//你 console.log(str.charAt(2));//呀```## 2. 返回指定字符的Unicode 编码str.charCodeAt(index)* 返回指定字符的Unicode 编码* 返回值范围是0~65535 之间的整数```var str = “aA0你好”console.log(str.charCodeAt(0) );//97console.log(str.charCodeAt(2) );//console.log(str.charCodeAt(5) );//```## 3. unicode 编码中需要记住的数值* a ~ z* A ~ Z* 0 ~ 9* 0 ——> 48* 9 ——> 57* A ——> 65* Z ——> 90* a ——> 97* z ——> 122## 4. 字符串连接方法* 平常工作中经常使用“ + ”进行连接* str.concat(str1..)* 该方法用于连接两个或者多个字符串```var str = '你好';console.log(str.concat('啊李先生'));//你好啊李先生console.log(str+'啊'+'李先生');//你好啊李先生console.log(str.concat('')== str);//true```caocat()如果连接的是一个长度为0的字符串则会返回这个字符串本身(this)## 查找字符串出现位置查找数组:index查找字符串:```str.indexOf(searchValue,fromIndex)```该方法返回某个指定的字符串在字符串中首次出现的位置参数:* searchValue 必选参数 * 规定需要检索的字符串数值* fromIndex 可选参数 * 规定 .字符串检索的起始位置 * 如果省略,则从字符串首字母开始```var str = 'abcdefghikab';console.log(str.indexOf('ab'));//0console.log(str.indexOf('ab',1));//11console.log(str.indexOf('z'));//-1```str.lastIndexOf(searchValue,fromIndex)* 该方法返回一个指定字符串最后出现的位置* 在一个字符串中从后往前检索```var str = 'efabcedf';console.log(str.lastIndexOf('ef'));//6console.log(str.lastIndexOf('ef',5));//0console.log(str.lastIndexOf('ef'6));//6console.log(str.lastIndexOf('ef'-1));//0```## 截取数组的截取是:...字符串的截取### str.substring(start,end)* 该方法用于提取字符串中两个指定下标之间的内容* 参数 * start 必选参数 * 给出一个非负的整数 * end 可选参数 * 给出一个非负的整数 * 如果省略,则代表截取到 * 字符串的结尾 * 截取不包括结束位置的元素```var str = '董小姐,你嘴角向下的时候很美';console.log(str.substring(1));//小姐,你嘴角向下的时候很美console.log(str.substring(1,3));小姐console.log(str.substring(-1,-3));console.log(str.substring(5,3));```如果开始大于结束对字符串没有影响### str.substr(start,length)参数* start 必选参数 * 要截取的字符串的起始位置 * 如果是负数,计算从字符串的尾部开始截取* length 可选参数 * 截取字符串中的长度 * 如果省略,则代表 * 完整截取(截取到尾部)```var str = '二十四桥明月夜,何处玉人教吹箫';console.log(str.substr(1));console.log(str.substr(1,3));console.log(str.substr(1,-3));// 空```在ECMA....在IE 4 中,start 无效开始位置强制为0str.slice(start,end)* 该方法用于提取字符串中的某个位置* 并且新字符串返回...* slice()可以支持负值* 参数: * start * 截取开始位置 * end * 截取结束位置```var str = '生命乘客改,爱情价更高';console.log(str,slice(0,1));console.log(str,slice(-3,1));```结束不能为0...## 三中截取方式之间的差别1. substring()2. substr()3. slice()三者之间最大的差别在于 如果传递的参数为负数1. substring() 会将所有的负数参数转为02. substr()会将第一个负数参数加上字符串的长度,第二个负数转化为03. slice() 会将负值和字符串的长度相加```var str = 'hell world ';//长度为11//结果 : hevar ret1 = str substring(2,-8);//结果 : 空var ret2 = str substr(2,-8);//结果 : lvar ret3 = str slice(2,-8);```## 字符串的大小写转换给之前文字大小写转换用的是什么?属性?chuansifou..?最近还有写页面吗?文字颜色,下滑线 上划线,对其,设置文字的英文的大小写文字倾斜是什么?文字粗体?-》文字大小写### str.toUpperCase() 转换为大写str.toUpperCase()* 该方法将字符串中所有字符转换为大写### str.toLowerCase()转换为小写str.toLowerCase()* 该方法将字符串中所有字符转换为小写```var ...```*《黑客究竟是一群什么人》下午分享精神:提倡信息和资源的共享,反对商业垄断。1. George Hotz2. Cracker3. Script Kiddie4. (冰人)马克斯 维京 ——> 网络犯罪之人5. 90 年代 纷纷投身 互联网6. 网络安全: 安全咨询,杀毒软件#### 字符串方法中的lastIndexOf()参数:* searchValue: * 查找的内容* fromIndex: * 搜索的范围* 通过网上查询* 不过之后,是班上的学生进行了解,课后老师是说会查询## 去除字符串中的首尾的空白字符str.trim()* 该方法是用于去除字符串中首尾* 所有的空白字符* 对字符串内部的空白字符不做任何处理```var str ='\n \t abc ABC \t \n';alert(str.trim());```## 字符串的替换方法三种方法### 1. replace()replace(regExp/substr,replaceElement)* regExp/substr: * 必选参数 * regExp -> 正则表达式 * substr -> 字符串 * 需要注意的,如果第一个值是字符串 * 则将这个字符串作为检索的直接量 * 而不是去查看是否能够转化为 regExp* replaceElement * 必选参数 * 规定了替换文本,或者生成替换文本的函数 * 一般为 一个字符串值```var str = 'abcabc';var newStr = str.replace('ab','**');//**cabcconsole.log(newStr);```替换只针对检索到的第一个匹配到...```console.log(str.replace(/ab/ig,'**'));//**cabcconsole.log(str.replace(/ab/g,'**'));//**c**cconsole.log(str.replace(/AB/gi,'**'));//**cabc```##### gig:* 正则对象的修饰符,表示匹配时进行全局匹配* (当前字符中全部进行替换)i:* 正则对象中的修饰符,* 表示匹配的时候不区分大小写## 2. match().match(匹配值)* 在字符串用于在字符串中检索指定的值* 匹配的参数只有一个* 要么是正则表达式* 要么是字符串* 返回值:* 存放匹配结果的数组```var str = 'abcabc';var arr = str.match('ab');console.loge(arr);console.log(str.match(/ab/gi));``````var str = '2017年02月08日15:25:30';var num = time.match(/\d+/gi);console.log```### 3. search()str.search(匹配的参数)* 匹配的参数只有一个,要么是正则表达式* 要么是字符串* 返回值: * 第一个匹配项的索引, * 如果没有找到,则返回 -1* 不支持全局匹配 ...```var str = 'abcabc';var arr = str.search('ab');console.log(arr); //0console.log(str.search(/ab/gi));//0```## 字符串的比较~ 和字符串很类似 ~### 1. ==```var str1 = '今天是个好日子';var str2 = new String'今天是个好日子';console.log(str1 ==str2);//true```虽然两个字符串一个是基本类型另外一个是引用类型对象但是他们的内容是相等的,所以返回的true### 2. ===```var str1 = '哈哈';var str2 = String'哈哈';var str3 = new String '哈哈';var str4 = new String '哈哈';// 内容和类型都相等,所以恒等console.log(str1 === str2);//true// 虽然内容相等,但是类型不同,所以不算恒等console.log(str1 === str3);//false//3和4虽然内容类型都相等,// 但他们是对象,必须是一个对象才能恒等console.log(str3 === str4);//false```### 3. str.localeCompare()str.localeCompare(other)* 如果字符串在字母表中排在字符串参数之前,* 则返回一个负数* 如果字符串等于字符串参数,则返回 0* 如果字符串在字母表中排在字符串参数之后,* 则返回一个正数```var str = 'b';var compare_1 = str.localeCompare('a');console.log(compare_1);//1``````var str1 = '李';var str2 = '赵';var compare_1 = str1.localeCompare(str2);``````var str3 = 'aa';var str4 = 'ab';console.log(str3.localeCompare(str4));```## 字符串的切割### str.split()str.split(separator,howmany)* separator : * 必选参数 * 字符串或者正则表达式, * 从该参数指定的位置进行切割* howmany: * 可选参数 * 该参数指定可返回的 * 数组的最大长度 * 如果设置了该参数, * 返回的子串不会多于这个参数 * 如果没有设置,则不考虑长度 * 将字符串全部切割 * 一般不设置该参数```var str = 'how oud ra you ';....```### Math 对象Math 主要用于做一些数学上的运算* 平方,开方,绝对值,三角函数...* 数学常用属性:π (pai)```console.log(Math.PI);```数学常用属性:E 自然对数的底数2.7 ...```console.log(Math.E);```绝对值```console.log(Math.abs(5));console.log(Math.abs(-5));//5```最大值```console.log(Math.max(5,60,80,4));//80```最小值```console.log(Math.min(5,60,80,4));//4```返回大于等于 number 的最小整数(向上取整)```console.log(Math.ceil(13,14));//14console.log(Math.ceil(13,-14));//13```返回大于等于 number 的最大整数(向下取整)```console.log(Math.floor(13,14));//13console.log(Math.ceil(-13,14));//-14```四舍五入```console.log(Math.round(13.4));//13console.log(Math.round(13.5));//14console.log(Math.round(-13.4));//-13console.log(Math.round(-13.5));//-14```指数```console.log(Math.pow(2,3));//8```平方根```console.log(Math.sqrt(4));//2```#### 随机数(伪随机数)(用的特别多)```console.log(Math.random());//随机小数```随机数函数* 返回是是0~1之间的随机小数* 不包括0和1三角函数(做特设效果)```console.log(Math.sin(Math.PI / 4));//45正弦console.log(Math.cos(Math.PI / 4));//45余弦console.log(Math.tan(Math.PI / 4));//45正切```* 存在精度问题* 反弦都是由这个基础演变过去的##### 随机数函数1. 写好注2. 留好退路3. 目标:* 创建一个函数,我们可以自己控制* 输出的随机数 的 区间* 预留参数:1. 随机数区间的最大值2. 随机数区间的最小值* 函数的名称: * getRandom* 函数的实现过程: * Math.random() * 返回是 0 ~ 1 * 给当前这个随机数 放大 * 做出最大值限制 * 将最大值和最小值进行相减 * 将差值 + 1 * 封装 * 在封装前注意设限制 * 例如:最大值原本就是这个然后由于随机数 * 导致错误例如随机出0.9999 * ... 查看生成随机数代码```function Random(min,max){ var rand = Math.random()*(max-min +1);/ rad = Math.floor(rand)+min; / return rand;}传入一个3 传入一个90.99999* (9 - 3 + 1)0.8888666*(9 -3 +1)0.8888666*76.2rand = Math.floor(rand) + min;return rand;}for(var i = ... )```明天写:(BOM):与浏览器交互的方法和接口(DOW)
推荐信息