0、对于 HTTP 协议而言,HTML、CSS、JS、JSON 的本质都是什么?
- 对于HTTP协议而言,html、css、js、json是符合相应语法的字符串
- 用户访问页面时,浏览器根据用户请求的路径,向服务器发起请求,服务器根据路判断径返回给浏览器对应的字符串,同时也返回给浏览器Content-Type值。
- Content-Type=text/html,浏览器就把字符串当HTML进行解析;当HTML中有
<link rel="stylesheet" href="" />
,浏览器再向服务器发起请求,服务器返回字符串和Content-Type=text/css
,浏览器就把返回的字符串当CSS进行解析;当HTML中有<script src="" />
,浏览器向服务器发起请求,服务器返回字符串和Content-Type=text/javascript
,浏览器就把字符串当JS进行解析,返回给用户;
1、使用数组拼接出如下字符串 ,其中styles数组里的个数不定
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
var s = '<dl class = "product" >'
for(var i in data){
console.log(i);
if (i === 'name') {
s += '<dt>'+data[i]+'</dt>';
} else if(i == 'styles'){
for(var k in data[i]){
s += '<dd>'+data[i][k]+'</dd>'
}
}
}
return s + '</dl>'
};
var result = getTplStr(prod); //result为下面的字符串<dl class="product"><dt>女装</dt><dd>短款</dd<dd>冬季</dd><dd>春装</dd></dl>
console.log(result);
2、写出两种以上声明多行字符串的方法
例如:var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'
这段字符串很长,如何多行优雅的显示
- 方法一:
var str = 'abcdeabcdeab\
cdeancdea\
bcdeabcdea\
bcdeancdeab\
cdeabcdeabc\
deancdeabcd\
eabcdeabcdeancde'```
- 方法二:
var str = 'abcdeabcdeabcdean'
+'cdeabcdeabcdeabcdean'
+'cdeabcdeabcdeabcdean'
+'cdeabcdeabcdeabcdeancde'
####3、补全如下代码,让输出结果为字符串: hello\\饥人谷
var str = 'hello\饥人谷'
console.log(str)
####4、以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length)
- 输出13,因为\n是转义字符换行
####5、写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
-
function isReverse (str) {
return str===str.split('').reverse().join('')
}
####6、写一个函数,统计字符串里出现出现频率最多的字符
function mostChars(str){
var s2={};
var cont=0;
var char;
for (var i in str) {
if (s2[str[i]]) {
s2[str[i]]++;
} else{
s2[str[i]] = 1;
}
}
for(var k in s2){
if (s2[k]>cont) {
char = k;
cont = s2[k];
}
}
return char+":"+cont;
}
####7、写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
-
function camelize(str) {
var arr = str.split('-');
for(var i = 1; i < arr.length; i++) {
arr[i] = arr[i][0].toUpperCase()+arr[i].substr(1);
}
return arr.join('');
}
####8、写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
ucFirst("hunger") == "Hunger"
-
function ucFirst(str){
return str[0].toUpperCase() + str.substr(1)
}
####9、写一个函数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.substring(0,maxlength)+"***";
} else{
return str
}
}
10、什么是 JSON格式数据?JSON格式数据如何表示对象?window.JSON 是什么?
- JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
- JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:
{"firstName": "John"}这很容易理解,等价于这条 JavaScript 语句:
{firstName = "John"} - window.JSON是浏览器内置对象其中JSON.parse()表示把字符串解析为JSON对象,而JSON.stringify()表示将JSON对象解析为字符串
11、如何把JSON 格式的字符串转换为 JS 对象?如何把 JS对象转换为 JSON 格式的字符串?
- 要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}' - 要实现从 JSON 转换为对象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}