常見的字符串方法:
- 長(zhǎng)度計(jì)算及連接
var str = "hello";
console.log(str.length); //打印5
console.log(str[0]); //打印str[0]=1
console.log(str[str.length-1]);//打印str[4]=o
var str1 = str;
var str2 = "world";
var str3 = str1 + str2; //字符串拼接
console.log(str3); //打印 helloworld
字符串截取
var str = "hello world";
//第一個(gè)是開始位置,第二個(gè)是長(zhǎng)度
var sub1 = str.substr(1,3); //從下標(biāo)1開始截取3個(gè)字符
//第一個(gè)開始位置,第二個(gè)是結(jié)束位置,長(zhǎng)度為第二減第一,實(shí)際上就是去除了尾端的字符
var sub2 = str.substring(1,3);
//同上,從第一個(gè)位置開始,第二個(gè)是結(jié)束位置,去除結(jié)束位置的字符,截取長(zhǎng)度為3-1=2;
var sub3 = str.slice(1,3);字符串查找
復(fù)習(xí)部分
1匣吊、使用數(shù)組拼接出如下字符串
var product = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
}
function getTpl(product) {
var arr = [];
arr.push('<dl>');
arr.push(' <dt>' + product.name + '</dt>');
for(var i = 0; i < product.styles.length; i++) {
arr.push('<dd>' + product.styles[i] + '</dd>');
}
arr.push('</dl>');
return arr.join('');
}
console.log(getTpl(product));
2漓踢、寫出兩種以上聲明多行字符串的方法
- 方式一:
使用反斜杠加換行符,達(dá)到換行且有一定空間的輸出效果
- 方式二
使用數(shù)組的內(nèi)置join方法來(lái)實(shí)現(xiàn)換行輸出
3.補(bǔ)全如下代碼,讓輸出結(jié)果為字符串: hello\饑人谷.
答:
4沦零、以下代碼輸出什么?為什么
答:輸出字符長(zhǎng)度為,且長(zhǎng)度為13,換行符為一個(gè)字符;
5捷凄、寫一個(gè)函數(shù)秕狰,判斷一個(gè)字符串是回文字符串趣苏,如 abcdcba是回文字符串, abcdcbb不是
- 回文字符串就是顛倒順序后與原字符串相同的字符串
function isPalindrome(str){ var new_str = str.split('').reverse().join(''); return str === new_str; } var str = "123123"http://不是回文字符串 if(isPalindrome(str) === true){ alert("是回文字符串"); }else{ alert("不是回文字符串"); }
6、寫一個(gè)函數(shù)准颓,統(tǒng)計(jì)字符串里出現(xiàn)出現(xiàn)頻率最多的字符
var str = "hello world welcome to china nice to meet you";
var dict = {};//聲明并定義一個(gè)名為dict的空對(duì)象
for(var i=0;i<str.length;i++){
if(dict[str[i]]){ //當(dāng)i=0時(shí),dict[str[0]]=dict[h]是不存在的,因此為假,
++dict[str[i]] // 不執(zhí)行
}else{
dict[str[i]] = 1 //dict[h] = 1;相當(dāng)于給對(duì)象增加了一個(gè)h屬性,且賦值為1,之后依次類推
}
}
console.log(dict);
var maxValue = dict['h'];
var max_index = 0;
for(var key in dict){
if(maxValue < dict[key]){
maxValue = dict[key];
max_index = key;
}
}
var str = "出現(xiàn)頻率最高的字符為:"+ max_index;
alert(str);
`
7梯刚、寫一個(gè)camelize函數(shù)凉馆,把my-short-string形式的字符串轉(zhuǎn)化成myShortString形式的字符串,如
function camelize(str){
var arr = str.split("-");
var newArr = [];
newArr[0] = arr[0];
for(var i = 1;i < arr.length;i++){
//相當(dāng)于從第二個(gè)單詞開始,視其為為一個(gè)數(shù)組(而非數(shù)組元素),arr[i][0]為該單詞的首字母,將其改為大寫
newArr.push(arr[i][0].toUpperCase() + arr[i].slice(1));
}
return newArr.join("");
}
$res = camelize("background-color");
console.log($res);
8亡资、寫一個(gè) ucFirst函數(shù)澜共,返回第一個(gè)字母為大寫的字符 (***)
function ucFirst(str){
var initials = str[0].toUpperCase();
var lastPart = str.slice(1);
return initials + lastPart;
}
console.log(ucFirst("hunger"));
9、寫一個(gè)函數(shù)truncate(str, maxlength), 如果str的長(zhǎng)度大于maxlength沟于,會(huì)把str截?cái)嗟絤axlength長(zhǎng)咳胃,并加上...,如
function truncate(str,maxlength){
if(str.length > maxlength){
var res = str.substr(0,maxlength) + "...";
return res;
}else{
return str;
}
}
var str1 = "hello, this is hunger valley,";
console.log(truncate(str1,10));
var str2 = "hello world";
console.log(truncate(str2,20));
10旷太、什么是 JSON格式數(shù)據(jù)展懈?JSON格式數(shù)據(jù)如何表示對(duì)象?window.JSON 是什么供璧?
JSON(JavaScript Object Notation,對(duì)象表示法),JSON是在JavaScript的一個(gè)嚴(yán)格的子集,利用了JavaScript中的一些模式來(lái)表示結(jié)構(gòu)化數(shù)據(jù);
以上引自JS高程,個(gè)人目前的理解就是JSON是一種特殊的數(shù)據(jù)結(jié)構(gòu),含有特殊的嚴(yán)格語(yǔ)法,是js語(yǔ)法的一個(gè)子類,即數(shù)據(jù)的表示滿足了JSON的語(yǔ)法,肯定也是滿足JS的語(yǔ)法的;
JSON格式數(shù)據(jù)表示對(duì)象的形式為:
首先設(shè)置一個(gè)JS字面量:
var person = {
name:"Nicholas",
age: 29;
}
JSON表示上述對(duì)象的方式如下:
{ "name":"Nicholas"; "age" : 29; }
JSON對(duì)象不用聲明對(duì)象(JSON沒(méi)有變量的概念);
JSON對(duì)象沒(méi)有末尾的分號(hào);
JSON對(duì)象的屬性必須任何時(shí)候都要加雙引號(hào);
-
window.JSON是用于判斷瀏覽器是否兼容JSON的用法存崖,例如IE8版本以上才內(nèi)置支持JSON.parse方法,對(duì)此常見這樣的寫法:
if(window.JOSN){ jsonObj2 = JSON.parse(json); }else{ }
11睡毒、如何把JSON 格式的字符串轉(zhuǎn)換為 JS 對(duì)象来惧?如何把 JS對(duì)象轉(zhuǎn)換為 JSON 格式的字符串?
JSON對(duì)象有兩個(gè)方法:stringify()和parse()用于互相轉(zhuǎn)換
- stingify()方法用于將javaScript對(duì)象序列化為JSON字符串;
- parse()方法用于將JSON字符串解析為原生的JavaScript值;
例子如下: