28 JS基础之--String包装数据类型方法总结
string的包装类型
字符串有长度属性,但是又说只有对象才有属性和方法。
实际上:
在使用字符串的属性或方法时,JS会给我们创建一个值相同的基本包装类型对象,再调用这个对象的属性和方法,这个对象使用完毕后会立刻删除掉。
var str1 = "abc";
var str2 = new String("abc");//string的包装类型//简单数据类型无法绑定属性和方法。
str1.aaa = 111;
str2.aaa = 222;
console.log(str1.aaa);//undefiend
console.log(str2.aaa);//222console.log(str1.length);
console.log(str1.indexOf("b"));//隐式转换,调用属性和方法的时候,
// 简单类型转换成了包装类型,使用完毕方法或者属性后又返回原来的简单数据类型。
str1和str2的本质:

基本包装类型
基本包装类型:Boolean、Number、String
什么是包装对象
当使用原始类型的值(string、number、boolean),在调用对应属性和方法的时候,内部会自动转成对应的对象。隐式创建的这个对象,就成为包装对象。
包装对象的特点
隐式创建对象后,可以调用对应的属性和方法,使用后,立马销毁,所以不能给原始类型的值添加属性和方法
引用类型和基本包装类型的主要区别就是对象的生存期
- 使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。
- 而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。
给索引查字符:charAt()
- str.charAt(索引值) 可以根据索引取出str中的某一个字符
- str[索引] html5添加的,ie9以上支持
charCodeAt(索引) 返回是这个字符的ASCII码,不常用
//Unicode编码: 97-65-48 == aA0var str = "0Aabcdefg";console.log(str.charAt(2));//s 给索引查字符 console.log(str[2]);//s 给索引查字符(h5新增,IE9以上支持)console.log(str.charCodeAt(0));//给索引查字符所对应的Unicode编码
给字符查索引indexOf()
- str.indexOf();
str.indexLastOf();从字符串尾部开始寻找
//给字符查索引,查不到返回值为-1; //如果字符特别长,包含完整的字符那么就是首字母的索引值。如果不全,返回值为-1;var str = "abcfdef";console.log(str.indexOf("b"));//1 console.log(str.lastIndexOf("f"));//6 console.log(str.lastIndexOf("x"));//-1 console.log(str.lastIndexOf("abd"));//-1
字符串的连接:concat()
var str1 = "123";
var str2 = "abc";
var str3 = str1.concat(str2);//123abc
字符串切割成数组 split()
1:2:3:4:5".split(":"); // 返回 ["1","2","3","4","5"]"|a|b|c|".split("|"); // 返回 ["", "a", "b", "c", ""] "hello".split(""); // 返回 ["h","e","l","l","o"]"hello".split("", 3); // 返回 ["h","e","l"]
String.split()执行的操作与Array.join()执行的操作相反。
字符串的截取:slice/substr/substring
1、string.slice(start, end)
slice:四种用法;两个参数都是索引值var str3 = "123abc";//单个参数
console.log(str3.slice(3));//abc
//两个参数
console.log(str3.slice(2,4));//3a
//负数
console.log(str3.slice(-4));//3abc
//前大后小:返回值为"";
console.log(str3.slice(3,0));
2、string.substr(start, length)
//substr(): (索引值,长度);//一个参数
console.log(str3.substr(3));//截取到最后
//两个参数
console.log(str3.substr(2,4));//截取的个数
//负数
console.log(str3.substr(-4));//截取后几个
//前大后小不研究:因为他是按照个数截取
3、substring:类比于slice方法。
//单个参数
console.log(str3.substring(3));
//两个参数
console.log(str3.substring(2,4));
//负数
console.log(str3.substring(-4));//获取所有
//前大后小:返回值为“”;
console.log(str3.substring(3,0));//智能调换
字符串的编码和解码
var url = "http://www.itcast.cn?username='nihao'&password=123123";//编码和解码
console.log(url);
var str1 = encodeURIComponent(url);
console.log(str1);//BOM的一个方法;
var str2 = decodeURIComponent(str1);
console.log(str2);
有关正则表达式的3个方法:search/replace/trim
1、replace(); 根据正则替换内容
var str = "Today ,today ,today ";//如果不用正则表达式,只把第一个today换成tomorrow
console.log(str.replace("today","tomorrow"));//Today ,tomorrow ,today //g是指全局替换(global)
console.log(str.replace(/today/g,"tomorrow"));//Today ,tomorrow ,tomorrow //i是指忽略大小写
console.log(str.replace(/today/ig,"tomorrow"));//tomorrow ,tomorrow ,tomorrowconsole.log("nihao2016".replace(/[\d]/g,""));
2、 trim(); 去除前后的空格
var str =" haha haha ";
console.log(str.trim());//haha haha
利用replace(),也可以实现trim()方法的功能:
//思路:找到前后的空白,然后用replace函数,把空白替换为""; var str =" haha haha ";
function trimStr(string) {return string.replace(/(^\s+)|(\s+$)/g, "");
}console.log(trimStr(str));//haha haha
3、search(); 给字符查索引
var str = "abcdefg";
console.log(str.search(/abc/));
字符串的特殊方法
localeCompare():包含
//localeCompare:包含
// s1 > s2 返回正数,一般是1(包含)
// s1 == s2 返回0(相等)
// s1 < s2 返回负数,一般是-1(不包含)var str = "abcdefg";console.log(str.localeCompare("abc"));//1console.log(str.localeCompare("abcdefg"));//0console.log(str.localeCompare("xyz"));//-1console.log(str.localeCompare("abcdefgakdslfjhadkg"));//-1console.log(str.localeCompare("ac"));//-1
根据Unicode编码转换字符串
var str = String.fromCharCode(48,65,97);
console.log(str);
基本包装类型补充:
基本包装类型,boolean类型和number数值类型的基本包装对象我们一般不使用,因为是对象形式,会对使用造成影响。
比如boolean,如果是对象,在判断布尔的时候, 永远是true。
28 JS基础之--String包装数据类型方法总结相关推荐
- JavaScript -- 时光流逝(三):js中的 String 对象的方法
JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javasc ...
- JS基础:基本包装类型
首先,要了解这个概念,我们要明白什么基本包装类型和引用类型 基本类型和引用类型的值 ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值 基本类型值指的是简单的数据段 引用类 ...
- js基础1 输入输出方式 数据类型
1.javascript基本概念 js是一种解释型语言,可以边运行边编译,html的架构https://www.html5rocks.com/en/tutorlals/internals/howbro ...
- java string类方法_Java基础学习——String类及其方法
String类概述 该类被final修饰,无子类,不可被复写.创建的对象一旦初始化,其内容不可被改变. String类复写了Object类中的equals()定义了自己的独特内容,该方法用于判断字符串 ...
- 【JS基础】类型转换——不同数据类型比较
小试牛刀 输出下列数据比较结果 [] == 0; //==============================================================true[] == f ...
- js字符串: String对象的方法 + 半角空格、全角空格
一.String 对象方法 方法 描述 anchor() 创建 HTML 锚. big() 用大号字体显示字符串. blink() 显示闪动字符串. bold() 使用粗体显示字符串. charAt( ...
- JS 基础(11月1日)
文章目录 JS 概述 什么是 js 的组成? JS 的使用方式 变量 console.log(打印东西) 预解析 值的类型 检测类型的方式 值类型的转换 Number方法 parseInt(字符串转整 ...
- ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...
JS中的数据类型 (一).基本数据类型(值类型) 1.number:数字 -12.12.5.-12.5 0这些数字都是number: js中增加了一个number类型的数据:'NaN' typeof ...
- js基础--数据类型检测的相关知识
欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...
- js php 数据类型判断,【js基础】变量类型判断
类型判断方法比较: 如果需要想详细了解,请看下文: 注:原封不动复制备份,防止删帖 在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, B ...
最新文章
- 1024x600 7 LVDS LCD with Capacitive Touch for pcD
- Python开发笔记之正则表达式的使用
- 深入理解C指针之四:指针和数组
- 深度学习福利入门到精通第五讲——ResNet模型
- 自动驾驶—全局定位的学习笔记
- linux zookeeper 端口号,linux下zookeeper安装
- hibernate理解
- 计算机视觉实战(十)图像特征harris角点检测(附完整代码)
- Mac上恢复已删除或未保存的Word文档该怎么做
- 数字电路基础知识(四) 加法器-半加器、全加器与超前进位加法器
- 全图各省市乡镇数据交流
- 谷歌浏览器配置微信浏览器_微信网页版 - Chrome社交与通讯插件 - 画夹插件网
- 保证线程安全的10个小技巧
- JZOJ5401. 【NOIP2017提高A组模拟10.8】Star Way To Heaven prim求mst
- 噩梦系列篇之Player随鼠标转向控制
- docker版mongodb数据同步到elasticsearch
- Vue组件——数字滚动抽奖效果
- oracle财务软件导出报表,OracleFusion财务会计中心报表云服务-UAO.PDF
- Effective JavaScript Item 23 永远不要修改arguments对象
- DAC0832转换器
热门文章
- 11.1.4 子线程与主线程通信实例
- 聊天别被人家说的“职业技术”忽悠了
- swoole php配置文件,EasySwoole分离配置文件
- PTA 7-6 新胖子公式
- MD5生成与校验(Linux/UNIX/Windows)
- 使用phpStudy显示3306端口被占用,该怎么办?
- 抓包工具 - HttpWatch(功能详细介绍)
- 光伏抢装潮:630的得与失
- python计算器实验报告_python作业模拟计算器开发(第五周)
- wo-27s管理员账户和密码_“无法使用内置管理员账户打开”应用