常見的字符串方法:
- 長度計算及連接
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";
//第一個是開始位置,第二個是長度
var sub1 = str.substr(1,3); //從下標1開始截取3個字符
//第一個開始位置,第二個是結束位置,長度為第二減第一,實際上就是去除了尾端的字符
var sub2 = str.substring(1,3);
//同上,從第一個位置開始,第二個是結束位置,去除結束位置的字符,截取長度為3-1=2;
var sub3 = str.slice(1,3);字符串查找

復習部分
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、寫出兩種以上聲明多行字符串的方法

- 方式一:
使用反斜杠加換行符,達到換行且有一定空間的輸出效果

- 方式二
使用數(shù)組的內置join方法來實現(xiàn)換行輸出

3.補全如下代碼,讓輸出結果為字符串: hello\饑人谷.

答:

4、以下代碼輸出什么?為什么

答:輸出字符長度為,且長度為13,換行符為一個字符;
5、寫一個函數(shù),判斷一個字符串是回文字符串,如 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、寫一個函數(shù),統(tǒng)計字符串里出現(xiàn)出現(xiàn)頻率最多的字符
var str = "hello world welcome to china nice to meet you";
var dict = {};//聲明并定義一個名為dict的空對象
for(var i=0;i<str.length;i++){
if(dict[str[i]]){ //當i=0時,dict[str[0]]=dict[h]是不存在的,因此為假,
++dict[str[i]] // 不執(zhí)行
}else{
dict[str[i]] = 1 //dict[h] = 1;相當于給對象增加了一個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、寫一個camelize函數(shù),把my-short-string形式的字符串轉化成myShortString形式的字符串,如

function camelize(str){
var arr = str.split("-");
var newArr = [];
newArr[0] = arr[0];
for(var i = 1;i < arr.length;i++){
//相當于從第二個單詞開始,視其為為一個數(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、寫一個 ucFirst函數(shù),返回第一個字母為大寫的字符 (***)

function ucFirst(str){
var initials = str[0].toUpperCase();
var lastPart = str.slice(1);
return initials + lastPart;
}
console.log(ucFirst("hunger"));
9、寫一個函數(shù)truncate(str, maxlength), 如果str的長度大于maxlength,會把str截斷到maxlength長,并加上...,如

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ù)如何表示對象?window.JSON 是什么?
JSON(JavaScript Object Notation,對象表示法),JSON是在JavaScript的一個嚴格的子集,利用了JavaScript中的一些模式來表示結構化數(shù)據(jù);
以上引自JS高程,個人目前的理解就是JSON是一種特殊的數(shù)據(jù)結構,含有特殊的嚴格語法,是js語法的一個子類,即數(shù)據(jù)的表示滿足了JSON的語法,肯定也是滿足JS的語法的;
JSON格式數(shù)據(jù)表示對象的形式為:
首先設置一個JS字面量:
var person = {
name:"Nicholas",
age: 29;
}
JSON表示上述對象的方式如下:
{ "name":"Nicholas"; "age" : 29; }
JSON對象不用聲明對象(JSON沒有變量的概念);
JSON對象沒有末尾的分號;
JSON對象的屬性必須任何時候都要加雙引號;
-
window.JSON是用于判斷瀏覽器是否兼容JSON的用法,例如IE8版本以上才內置支持JSON.parse方法,對此常見這樣的寫法:
if(window.JOSN){ jsonObj2 = JSON.parse(json); }else{ }
11、如何把JSON 格式的字符串轉換為 JS 對象?如何把 JS對象轉換為 JSON 格式的字符串?
JSON對象有兩個方法:stringify()和parse()用于互相轉換
- stingify()方法用于將javaScript對象序列化為JSON字符串;
- parse()方法用于將JSON字符串解析為原生的JavaScript值;
例子如下:
