1.对于 HTTP 协议而言,HTML、CSS、JS、JSON 的本质都是什么?
- 对于HTTP协议而言HTML、CSS、JS、JSON,都是字符串,只不过html是符合html语法的字符串,css是符合css语法的字符串,js与json也是符合各自语法的字符串;而对于浏览器来说,它会通过HTTP响应头的'Content-Type'属性来解析响应体中的内容。
2.使用数组拼接出如下字符串 ,其中styles数组里的个数不定
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
var arr = []
arr.push('<dl class="product">')
arr.push('<dt>'+data.name+'</dt>')
for (var x in data.styles) {
arr.push('<dd>'+data.styles[x]+'</dd>')
}
arr.push('</dl>')
return arr.join('')
};
var result = getTpl(prod); //result为下面的字符串
<dl class="product"><dt>女装</dt><dd>短款</dd<dd>冬季</dd><dd>春装</dd></dl>
3.写出两种以上声明多行字符串的方法
1.转义法:注:\后不能有空格
var a = '<div>\
<h1>123</h1>\
</div>'
2.使用'+'号连接:
var a = '<div>'
+ '<h1>123</h1>'
+ '</div>'
3.使用es6语法``:
var a = `<div>
<h1>123</h1>
</div>`
4.补全如下代码,让输出结果为字符串: hello\饥人谷
var str = 'hello\\\\饥人谷' //补全代码
console.log(str)
5.以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length)
// 13 , 因为\n是一个特殊字符
6.写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
function isPalind(str) {
var result = true
var len = str.length
for (var i = 0; i < len; i++) {
if (str.charAt(i) !== str.charAt(len -1 - i)) {
result = false
break
}
}
return result
}
isPalind('abcdcba') //true
isPalind('abcdcbb') //false
7.写一个函数,统计字符串里出现出现频率最多的字符
function maxChar(str) {
var dict = {}
var count = 0
var maxValue
for (var i = 0; i < str.length; i++) {
if (dict[str.charAt(i)]) {
dict[str.charAt(i)]++
} else {
dict[str.charAt(i)] = 1
}
}
for (var key in dict) {
if (dict[key] > count) {
count = dict[key]
maxValue = key
}
}
console.log(maxValue + ':' + count)
}
maxChar('asaoisfjpqjfpajfohuboojvpoafpo')
// o:6
8.写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
function camelize(str) {
var arr = []
arr = str.split('-')
for (var i = 1; i < arr.length; i++) {
arr[i] = arr[i].charAt(0).toUpperCase()
+ arr[i].slice(1).toLowerCase()
}
return arr.join('')
}
9.写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
ucFirst("hunger") == "Hunger"
function ucFirst(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()
}
10.写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...,如
truncate("hello, this is hunger valley,", 10) == "hello, thi...";
truncate("hello world", 20) == "hello world"
function truncate(str, maxlength) {
if (str.length > maxlength) {
return str.slice(0, maxlength) + '...'
}
return str
}
11.什么是 JSON格式数据?JSON格式数据如何表示对象?window.JSON 是什么?如何把JSON 格式的字符串转换为 JS 对象?如何把 JS对象转换为 JSON 格式的字符串?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。
-
JSON对象:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。如:
{ "firstName": "John", "lastName": "Smith", "sex": "male", "age": 25 }
window.JSON 是浏览器的内置对象(本地化的JSON对象),用来实现浏览器对JSON的原生支持,典型的JSON API包含两个函数,parse()和stringify()(分别用于将字符串序列化成DOM对象和将DOM对象转换成字符串)
将JSON字符串转换为JS对象:直接使用JSON.parse()方法
把 JS对象转换为 JSON 格式的字符串:直接使用JSON.stringify()方法