字符串
由一对引号包起来的零到多个字符
字符串属性
length长度,通过length可以直接获取字符串中字符的个数
下标:用下标可以直接获取字符串的第n位
字符串方法
0,使用+拼接字符串
1,str.charAt()获取字符串的第n位
语法:string str.charAt(index)
参数:index 对应位的下标 默认为:0
返回值:对应位的字符
index取值范围[0,str.length-1]
2,str.charCodeAt(index)返回指定位置的字符的Unicode编码(这个返回值是 0 - 65535 之间的整数)
语法:number str.charCodeAt(index)
参数:index 对应位的下标 默认为:0
返回值:对应位字符的Unicode编码
index取值范围[0,str.length-1]
3,String.fromCharCode( Unicode 编码 num,num,num,num) 将 unicode 还原成字符串
语法:string String.fromCharCode(Unicode 编码)
4,number.toFixed(n)保留n位小数
语法:string number.toFixed(n)
5,string.indexOf(str)方法可返回某个指定的字符串值在字符串中首次出现的位置。
语法:number string.indexOf(str[,fromindex]);
参数:string 完整的字符串
str要检索的字符串
fromindex 从第几个开始查找
str在string中首次出现的位置,如果未找到返回-1
6,string.lastIndexOf()
语法:number string.lastIndexOf()str[,fromindex]
和indexOf作用一样,不过是从后往前找
7,string.slice(start,end)
语法:string string.slice(star[,end])
参数:start从第几位开始截取
end截取到第几位(不包括end位),不写end,就截取到最后
返回值:截取到的字符串
注意:end小于start 不会执行。与9的区别
8,string.substr(start,length)
语法:string string.substr(start[,length])
参数:start 从第几位开始截取
length 截取几位 ,不写length 就截取到最后
返回值:截取到的字符串
9,string.substring(start,end)
语法:string string.substr(start[,end])
参数:start从第几位开始截取
end 截取到第几位(不包括end位),不写end,就截取到最后
返回值:截取到的字符串
注意:substring 会判断两个参数的大小,小的是start,大的是end
10,str.toLowerCase()转换成小写
11,str.toUpperCase()转换成大写
12,str.trim()去掉字符串首尾空格
13,str.repeat(n)字符串重复n遍
14,str.split()根据字符串把字符串分割成数组
语法:array str.split(separator[,howmany])
参数:separator 分隔符
howmany 最大长度
返回值:分割后的数组
String str1 ="aabccbdd";
String[] Str1Array = str1.split("b");//结果Str1Array:[aa, cc, dd]
15,字符串的模式匹配方法
stringObject.match(searchvalue)
stringObject.match(regexp)
参数:searchvalue 必需。规定要检索的字符串值。
regexp 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。
16,concat();
用于将一个或者多个字符串拼接起来,返回拼接后的到的新字符串
字符串面试题
1, JavaScript中如何检测一个变量是一个String类型?请写出函数实现
typeof(obj)=== “string”
typeof obj === “string”
obj.constructor === String
typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。
它返回值是一个字符串,该字符串说明运算数的类型。
instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性,也可以用于判断一个变量是否是某个对象的实例,
2,请用js去除字符串空格?
方法一:使用replace正则匹配的方法
去除所有空格:str = str.replace(/\s*/g,"")
去除两头空格:str = str.replace(/\s*|\s$/g,"")
去除左空格: str = str.replace(/^\s*/,"")
去除右空格: str = str.replace(/(\s*$)/g,"")
str为要去除空格的字符串,实例如下:
var str = “ 23 23 ”;
var str2 = str.replace(/\s*/g,"");
console.log(str2)//2323
方法二:使用str.trim()方法
str.trim()局限性:无法去除中间的空格,实例如下:
var str = “ xiao ming ”;
var str2 = str.trim();
console.log(str2)//xiao ming
同理,str.trimLeft(),str.trimRight()分别用于去除字符串左右空格。
方法三:使用jquery.$trim(str)方法
$.trim(str)局限性:无法去除中间的空格,实例如下:
var str = “ xiao ming ”;
var str2 = $.trim(str);
console.log(str2);// xiao ming
作用域
1,作用域链:数据的查找规则,在程序中调用一条数据,先在本作用域查找,如果找不到,就从父作用域找,如果还找不到就一层一层向上找,一直找到全局作用域,如果还找不到就报错。
全局作用域:
在全局任意地方,都可以修改和调用
声明在全局的变量,作用域都是全局作用域
函数作用域:
声明在函数内的变量或者函数的参数,只能在该函数内进行修改和设置。
块级作用域:
通过 let 或者 const 声明的变量(常量),只能在这个代码块中使用 { }
说明:js没有块级作用域,只有函数除外
隐式全局变量:声明的变量没有var,就叫隐式全局变量
全局变量是不能被删除的,隐式全局变量是可以被删除的
定义变量使用var是不会被删除的,没有var是可以删除的
常用http状态码及描述
2开头 (请求成功)表示成功处理了请求的状态代码。
200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
3开头 (请求被重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置
4开头 (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。