js字符串,js字符串的概述和声明,js字符串的特性,js字符串的常用方法,js字符串的拓展方法,js字符串的案例
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、js字符串的概述和声明
字符串就是一串字符,由双(单)引号括起来。字符串是JavaScript的一种基本的数据类型。
字面值声明
var str=‘你好呀小伙子’; 基本类型
定义一个字符串变量str,内容为‘你好呀小伙子’
构造函数创建
var str = new String(“hello”); 引用类型
定义一个字符串变量str,内容为hello,
注意此刻str为object(对象)类型
用new产生的变量都是引用类型的变量,也叫对象。
var s1= "string";
var s2= new String("string");
console.log(typeof(s1)); // string
console.log(typeof(s2)); // object
二、字符串的特性
1. 有length属性 (length 表示字符串的长度)
2. 可以通过下标取值(注意 字符串不能通过下标赋值) 下标的最大值 = length-1
3. 可以循环遍历 (for, for..in, for...of)
var str="hello xiaowu";
console.log(str.length); // 12
for (var i = 0; i < str.length; i++) {
console.log(i, str[i]);
}
for (var i in str) {
console.log(i, str[i]);
}
for (var val of str) {
console.log(val);
}
三、js字符串的案例
字符串的常用方法我单独开了一篇文章,建议先看另一篇
字符串的常用方法
根据当前链接来获取到参数数据队列中的值并存到对象中
获取当前链接:location.href
var url = "http://127.0.0.1/html/test.html?user=www&email=123123@qq.com&phone=17386141517";
// 1.先找到 ? 之后的参数数据队列 => 裁切字符串 => 起始下标 => ?的下标+1//(1) 找到?的下标
var index = url.indexOf("?");
// slice() substring() substr() 都可以裁剪字符串
var search = url.substr(index + 1); //从index+1的地方裁剪到最后
//var search = url.substring(index + 1); //从index+1的地方裁剪到最后
//var search = url.substr(index + 1); //从index+1的地方裁剪到最后
//其实这里可以使用location.search直接获取到,但是为了练习字符串的相关方法
//console.log(search); //user=www&123123@qq.com&phone=17386141517
//2. 把一整条数据切割成三份 (用户名/密码/手机号) 找到每条数据中位于"="之后的数据 例如 "user=www" =>user:"www"
var dataList = search.split("&"); // ["user=www", "123123@qq.com", "phone=17386141517"]
var usreList = {};
for(var i=0;i<dataList.length;i++){
var item = dataList[i]; // "user=www"
var key = item.split("=")[0]; // user
var val = item.split("=")[1]; // www
usreList[key] = val;
}
console.log(userList); // {user: "www", email: "123123@qq.com", phone: "17386141517"}
逻辑题:
已知字符串“aabaccd”编程实现以下功能。
(1)去掉重复的字符,使结果显示 abcd (字符串去重)
(2)统计字符 统计每个字符出现的次数,结果显示 a 3、b 1、c 2、d1 => a3b1c2d1
var str = "aabaccd";
var newStr = "";
for (var val of str) {
if (newStr.indexOf(val) == -1) {
newStr += val;
}
}
console.log(newStr); // abcd
var subStr = "";
//遍历字符串newStr 去重之后的每一个字符
for (var i = 0; i < newStr.length; i++) { // a b c d
var item = newStr.charAt(i); // a
var count = 0;
//遍历字符串str 原始的的每一个字符
for (var j = 0; j < str.length; j++) {
var char = str.charAt(j);
if (item == char) {
count++;
}
}
console.log(item, count);
subStr += (item + count);
}
console.log(subStr);
(3)压缩统计 原始字符串:aaaabbbbbbbccdaaaaa;压缩后:a4b7c2d1a5 即连续相同的字符串的个数)
var str = "aaaabbbbbbbccdaaaaa";
var newStr = "";
var count = 1; // 4
for (var i = 0; i < str.length; i++) {
var char = str.charAt(i);
var next = str.charAt(i + 1);
if (char == next) { //相同 就计数
count++;
} else { // 之后 开始进行下一次 所以在进行下一次之前 先把之前的归整一下
console.log(char, count);
newStr += (char + count);
count = 1;
}
}
console.log(newStr);