使用数组拼接出如下字符串 ,其中styles数组里的个数不定
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTplStr(data){
var array = [];
var str1 = '<dl class=\"product\">';
array.push(str1);
var str2 = '<dt>'+data.name+'</dt>';
array.push(str2);
for(var i in data.styles) {
var str3 = '<dd>'+data.styles[i]+'</dd>';
array.push(str3);
}
var str4 = '</dl>';
array.push(str4);
return array.join('');
}
var result = getTplStr(prod); //result为下面的字符串
console.log(result);
// 输出结果:
<dl class="product"><dt>女装</dt><dd>短款</dd><dd>冬季</dd><dd>春装</dd></dl>
写出两种以上声明多行字符串的方法
例如:
var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'
这段字符串很长,如何多行优雅的显示
- 方法一:
var str =
'abcde\
abcde\
abcde\
ancde\
abcde\
abcde\
abcde\
ancde\
abcde\
abcde\
abcde\
ancde\
abcde\
abcde\
abcde\
ancde'
- 方法二:
var str =
'abcde'+
'abcde'+
'abcde'+
'ancde'+
'abcde'+
'abcde'+
'abcde'+
'ancde'+
'abcde'+
'abcde'+
'abcde'+
'ancde'+
'abcde'+
'abcde'+
'abcde'+
'ancde'
补全如下代码,让输出结果为字符串: hello\饥人谷
var str = 'hello \\\\饥人谷' //补全代码
console.log(str)
以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length)
// 13 使用了\n换行,占一个字符,空格不计算长度
写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
var str1 = 'abcdcba';
var str2 = 'abcdcbb';
function fn(str) {
var newArr = str.split('');
var reArr = newArr.reverse();
var str3 = reArr.join('');
if(str == str3) {
return true;
} else {
return false;
}
}
console.log(fn(str1)); // true
console.log(fn(str2)); // false
写一个函数,统计字符串里出现出现频率最多的字符
function getMost(str) {
var dict = {};
var max = 0;
var maxCh;
for(var i = 0; i < str.length; i++) {
var ch = str[i];
if(dict[ch] === undefined) {
dict[ch] = 1;
}else {
dict[ch]++;
}
if(dict[ch] > max){
max = dict[ch];
maxCh = str[i];
}
}
return {index: max, ch: maxCh};
}
console.log(getMost('hello world')); // { ch: "l", index: 3}
写一个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('');
}
var str1 = "background-color";
var str2 = "list-style-image";
console.log(camelize(str1)); // backgroundColor
console.log(camelize(str2)); // listStyleImage
写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
ucFirst("hunger") == "Hunger"
function ucFirst(str) {
str = str.replace(str[0], str[0].toUpperCase());
return str;
}
console.log(ucFirst("hunger")); // Hunger
写一个函数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) {
str = str.substr(0, maxlength)+ "...";
}
return str;
}
console.log(truncate("hello, this is hunger valley,", 10)); // hello, thi...
console.log(truncate("hello world", 20)); // hello world
什么是 JSON格式数据?JSON格式数据如何表示对象?window.JSON 是什么
-
JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。
JSON 对值的类型和格式有严格的规定。
- 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
- 简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。
- 字符串必须使用双引号表示,不能使用单引号。
- 对象的键名必须放在双引号里面。
- 数组或对象最后一个成员的后面,不能加逗号。
JSON是javascript中的内置对象,提供了JSON.parse()、JSON.stringify()等方法。
window.JSON是浏览器内置对象,可用于判断浏览器是否兼容JSON的用法,例如IE8版本以上才内置支持JSON.parse方法。JSON对象内置了JSON.parse()、JSON.stringify()两种方法。
如何把JSON 格式的字符串转换为 JS 对象?如何把 JS对象转换为 JSON 格式的字符串
- JSON格式的字符串转换为JS对象
var json = '{"name": "kitty", "age": "20"}';
var obj = JSON.parse(json);
console.log(obj);
- JS对象转换为 JSON 格式的字符串
var obj = {age: "20", name: "kitty"};
var json = JSON.stringify(obj);
console.log(json);