JSON 前后台数据传输
1.JSON.parse(后台传输过来的数据)
反序列化(有时候也被称作JSON数据解析,简称为JSON解析),
能够把JSON字符串转换成JS的数据类型。
转换的时候,如果字符串中存在不符合JSON要求的格式,会直接报错。
使用场景:异步请求成功接受请求回传的数据时, 使用JSON来将数据信息转换为实际可用的数据类型
实例:读取localStorage、sessionStorage、原生返回的对象
let authList = JSON.parse(sessionStorage.getItem("menuList") || "[]");
2.JSON.stringify(要往后台传输的数据)
序列化(有时候也被称作JSON数据封装或数据加密)
能够把JS的数据类型转换成JSON字符串。
转换的时候,如果数据中存在不符合JSON要求的格式,会做对应的处理
使用场景:ajax发送请求时,会将数据封装为一个JSON字符串再发送
$.each(navList, function (i, v) {
var itemStr = JSON.stringify(v)
if (v.fdColumnName) {
navHtml += "<li><span onclick='handleModal(" + itemStr + ")'>" + v.fdColumnName + "</span></li>"
}
})
3.JSON的使用场景
1. ajax发送请求时,会将数据封装为一个JSON字符串再发送
2. 请求成功接受请求回传的数据时, 使用JSON来将数据信息转换为实际可用的数据类型
一、模拟多行字符串
var str = 'you'
+'are'
+'so'
+'cute!'
console.log(str);
二、字符串的属性及方法
1.length、[]、charAt()、charCodeAt()、concat()
var txt1 = "Hello World!";
console.log(txt1.length);
var name = "Frankenstein";
console.log(name[0]);
var name = “Frankenstein”;
var at = name.charAt(0);
var codeAt = name.charCodeAt(0);
var chars = String.fromCharCode(65);
console.log(chars );
var speakWord1 = "come on!Please!";
var speakWord2 = “cute girl!";
var finalWord = speakWord1.concat(speakWord2);
console.log(finalWord);
2.substring()、substr()、slice() 截取字符串
var string = 'The Three FireGuners';
string.substring(4, 9)
string.substring(9, 4)
var string = 'The Three fireGuners';
string.substr(4, 9)
string.substr(9, 4)
var string = 'The Three fireGuners';
string.slice(4, 9)
string.slice(9, 4)
3.indexOf() 查找一个字符串在另一个字符串的位置
var string = 'xiaoMingTongXue';
string.indexOf('i') ;
4.lastIndexOf() 从后查找一个字符串在另一个字符串的位置
var string = 'xiaoMingTongXue';
string.lastIndexOf('o') ;
5.trim() 去掉字符串两端多余的空格
var string = ' China WanSui! ';
string.trim() ;
6.toUpperCase() 转换成大写字母
var string = 'i am grute!';
string.toUpperCase() ;
7.toLowerCase() 转换成小写字母
var string = 'I AM Grute!';
string.toLowerCase() ;
8.match() 匹配到寻找到的第一个字符串
var string = 'hello world hello!';
string.match('hello') ;
9.search() 查找子字符串在指定字符串中的位置
var string = 'hello world hello!';
string.search('hello') ;
10.replace(oldStr, newStr) 替换成【目标字符串】
var str = 'hello world!';
var newStr = str.replace('world','frank') ;
11.split(separator) 分割字符串成数组
var string = 'good bye everyone.';
string.split(' ') ;
12.
三、转义符\
\' 单引号
\" 双引号
\\ 反斜杠
\n 换行 英文是New line,表示使光标下移一格 -- <br/>是浏览器换行
\r 是回车,英文是Carriage return,表示使光标到行首
\ttab (制表符)
四、字符串对象
var string1 = "frank";
console.log(typeof string1);
var string2 = new String("frank");
console.log(typeof string2);
var x = "John";
var y = new String("John");
console.log(x === y);
五、javascript字符集
JavaScript使用Unicode字符集。也就是说,在JavaScript引擎内部,所有字符都用Unicode表示。
JavaScript不仅以Unicode储存字符,还允许直接在程序中使用Unicode编号表示字符,即将字符写成\uxxxx的形式,其中xxxx代表该字符的Unicode编码。
比如,\u00A9代表版权符号。解析代码的时候,JavaScript会自动识别一个字符是字面形式表示,还是Unicode形式表示。输出给用户的时候,所有字符都会转成字面形式。
var s =
console.log(s);//©
\n 换行符 (\u000A)
\
\" 双引号 (\u0022)
\ 反斜杠 (\u005C)
【字符串Base64编码】
Base64本身是一种加密方式,可以将任意字符转成可打印字符。
有时需要以文本格式传递二进制数据,那么也可以使用 Base64 编码。
而我们使用这种编码方法,主要不是为了加密,而是为了不出现特殊字符,简化程序的处理。
javascript中字符串提供了两个有关Base64编码的方法:
btoa():字符串或二进制值转为Base64编码
atob():Base64编码转为原来的编码
encodeURIComponent():要将非 ASCII 码字符转为 Base64 编码
decodeURIComponent():将转码后的内容转为非ASCII内容
var string = 'frank';
console.log(btoa(string));
var string = 'ZnJhbms=';
console.log(atob(string));
ps:这两个方法不适合非ASCII码的字符,会报错。如果要把非ASCII码字符转为Base64编码,必须中间插入一个转码环节,再使用这两个方法。