1. 程式人生 > >前端筆試題:返回 string 的情況

前端筆試題:返回 string 的情況

題目:[不定項選擇] 下面哪些情況會返回字串string。

console.log(typeof('string')); 
console.log(String('string').toString());
console.log('string'.split('').sort().join(''));
console.log((function (string){return string})('string'));
console.log(JSON.parse('{"string":"string"}').string);
console.log('string'.toLowerCase());

正確結果:

console.log(typeof('string')); //string
console.log(String('string').toString());//string
console.log('string'.split('').sort().join(''));//ginrst 
console.log((function (string){return string})('string'));//string
console.log(JSON.parse('{"string":"string"}').string);//string
console.log('string'.
toLowerCase());//string

答案講解:
1.typeof :返回物件的型別
有以下情況:
- Undefined “undefined”
- Null “object”
- Boolean “boolean”
- Number “number”
- String “string”
- Symbol (ECMAScript 6 新增) “symbol”
- 宿主物件(由JS環境提供) Implementation-dependen
- 函式物件 ( [[Call]] 在ECMA-262條款中實現了) “function”
- 任何其他物件 “object”

另外,可檢視正則表示式字面量的型別,由此判斷某些瀏覽器不符合標準 。

typeof /s/ === 'function'; // Chrome 1-12 , 不符合 ECMAScript 5.1
typeof /s/ === 'object'; // Firefox 5+ , 符合 ECMAScript 5.1

2.String(‘string’).toString()
使用了建構函式String建立物件,並返回字串。
等同於

var str = new String('string');
str.toString();

3.’string’.split(”).sort().join(”)
執行順序是先split(),再sort(),最後join()。

(1) split()
用於把一個字串分割成字串陣列。

初始表示式為stringObject.split(separator,howmany)。
separator 必需。字串或正則表示式,從該引數指定的地方分割 stringObject。
howmany可選。該引數可指定返回的陣列的最大長度。如果設定了該引數,返回的子串不會多於這個引數指定的陣列。如果沒有設定該引數,整個字串都會被分割,不考慮它的長度。

var str = "123456789";
console.log(str.split());

結果為:[‘123456789’]
若想要每個數字為一個元素,則為split()方法傳入一個空字串即可

var str = "123456789";
console.log(str.split(""));

結果為:[‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’]

(2) join()
將字串陣列連線成字串,是split()的逆過程。

(3) sort() 陣列的元素進行排序,返回陣列。
arrayObject.sort(sortby),sortby可選。規定排序順序,必須是函式。

<script type="text/javascript">

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort())

</script>

輸出結果:未按照數值大小排序

10,5,40,25,1000,1
1,10,1000,25,40,5

改進方法,是傳遞一個函式引數

<script type="text/javascript">

function sortNumber(a,b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))

</script>

4.(function (string){return string})(‘string’)
函式表示式,它等價於以下程式碼:

function f(string){
    return string;
}
console.log(f("string"));

5.JSON.parse(‘{“string”:”string”}’).string
JSON.parse() 方法返回json物件,再訪問 string 屬性。

JSON.parse() 方法解析一個JSON字串,構造由字串描述的JavaScript值或物件。可以提供可選的reviver函式以在返回之前對所得到的物件執行變換。

6.’string’.toLowerCase()
將字串轉換成小寫字串。
轉大寫是toUpperCase()方法。