1、使用数组拼接出如下字符串
function getTplStr(data){
if(!prod) return;
let str = '<dl class="product">\n\t<dt>'+
data.name+'</dt>';
if(data) {
for(let key in data.styles) {
str+='\n\t<dd>'+data.styles[key]+'</dd>';
}
//es6
// for(let [key,value] of data.styles.entries()) {
// str+='\n\t<dd>'+value+'</dd>';
// }
//es2017
// for(let value of Object.values(data.styles)){
// str+='\n\t<dd>'+value+'</dd>';
// }
}
str+='\n</dl>';
return str;
}
2、写出两种以上声明多行字符串的方法
//方法1
let str1 = "hello\
world!";
//方法2
let str2 = "hello "
+"world!";
console.log(str1, str2);
3、补全如下代码,让输出结果为字符串: hello\饥人谷
var str = "hello\\\\饥人谷"; //补全代码
console.log(str)
4、以下代码输出什么?为什么
- 输出:13
- 因为''是转义字符,不占字节
5、写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
const fn = (str) => {
if(str && typeof str==="string"){
let n = Math.floor(str.length/2);
for(let i=0;i<n;i++) {
m = str.length-i-1;
if(str[i]!==str[m]){
return false;
}
}
return true;
} else {
return false;
}
}
let str1 = "abcdcba",str2="abcdcbb";
console.log(fn(str1),fn(str2));
6、写一个函数,统计字符串里出现出现频率最多的字符
const fn = (str) => {
let obj = new Object();
for (let key in str) {
if (obj[str[key]]) {
obj[str[key]] ++;
} else {
obj[str[key]] = 1;
}
}
let count = 0, maxValue;
for (let key in obj) {
if (obj[key] > count) {
maxValue = key;
count = obj[key];
}
}
return maxValue;
}
let str = "hello jiRenGu world";
console.log(fn(str));
7、写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如
//1.去除'-',2.第二个单词首字母大写
const fn = (str) => {
let array = str.split('-');
for(let index in array) {
if(index > 0) {
array[index] = fn2(array[index]);
}
}
return array.join('');
}
//首字母大写
const fn2 = (str) => {
let a = str.charAt(0);
let str2 = str.substring(1);
return a.toUpperCase(a)+str2;
}
let str = "my-short-string";
console.log(fn(str));
8、写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
const fn = (str) => {
let a = str.charAt(0);
let str2 = str.substring(1);
return a.toUpperCase(a)+str2;
}
let str = "hello jiRenGu";
console.log(fn(str));
9、写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...,如
const truncate = (str, maxLength) => {
if (str.length > maxLength) {
return str.substring(0, maxLength) + "...";
} else {
return str;
}
}
let str1 = truncate("hello, this is hunger valley,", 10); // "hello, thi...";
let str2 = truncate("hello world", 20); // "hello world"
let str3 = truncate("hello", 2); //"he..."
console.log(str1, str2, str3);
10、什么是 json?什么是 json 对象?什么是 json 对象字面量?什么是 JSON内置对象?
- json:
json是一种数据交换格式,是纯文本的字符串,是作为一种替代XML数据格式角色出现,json简单易读方便转换跨平台,有很多json api提供了json字符串与对象互转的方法
- json对象:
JSON对象就是JavaScript中的一个对象
- json 对象字面量:
var person={
"name":"xianyu",
"age":24,
"love":"Online Game"
}
从上我们可以看出这就是用字面量表示一个对象,而这个格式就是json格式的, 因为本身json就是JavaScript语法集的一种,所以json字面量就是用json格式的JavaScript对象字面量。
- JSON内置对象:
JSON属性对应的值是JSON对象
11、如何把JSON 格式的字符串转换为对象?如何把对象转换为 JSON 格式的字符串?
- JSON字符串转换为对象:JSON.parse();
let str1 = '{"name":"hello","age":13}';
let obj1 = JSON.parse(str1);
console.log(obj1);
- 对象转换为JSON字符串:JSON.stringify();
let obj2 = {
name:'kitty',
age:11,
}
let str2 = JSON.stringify(obj2);
console.log(str2);