1、使用数组拼接出如下字符串
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
//todo...
};
var result = getTplStr(prod); //result为下面的字符串
- 女装
- 短款
- 冬季
- 春装
function getTplStr(object){
var strArray = [];
strArray.push("");
strArray.push(" - "+ object.name+"
");
for(var item in object.styles) {
strArray.push(" - "+object.styles[item]+"
");
}
strArray.push("
");
return strArray.join("");
}
2、写出两种以上声明多行字符串的方法
方法1 利用行尾转义'/'
var str = 'Long \
may \
she \
reign'
str // 输出 Long may she reign
方法2 利用加号+
var str = 'Long ' +
'may ' +
'she ' +
'reign';
str // 输出 Long may she reign
方法3 利用多行注释生成多行字符串
(function () { /*
Long
may
she
reign
*/}).toString().split('\n').slice(1,-1).join('\n')
// "Long may she reign"
3、补全如下代码,让输出结果为字符串: hello\饥人谷
var str = "hello\\\\饥人谷"//补全代码
console.log(str)
4、以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length) //13
输出是13,因为字符串 str 中有一个转义字符\n,其虽然有两个字符但是被 JS 解析器认为只是一个字符,有换行的作用,所以输出字符串长度为13
5、写一个函数,判断一个字符串是回文字符串,如 abcdcba 是回文字符串, abcdcbb 不是
function isReverse(str) {
var str0 = str.split('').join('');
var str1 = str.split('').reverse().join('');
return str1 === str0;
}
6、写一个函数,统计字符串里出现出现频率最多的字符
function mostAppear(str){
var dict = {};
for(var i=0; i count){
maxValue = key;
count = dict[key];
}
}//得到出现频率最高的字符的出现数字
var num = 0;
var arr = [];
for(item in dict){
if(dict[item] === count){
num++;
arr.push(item);
}
}//将出现频率最高的所有字符放入数组 arr 中
return arr;
}
7、写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
function camelize(str) {
var arr0 = str.toLowerCase().split("-");
//将字符串按照-拆分成字符串数组,并使得全部字母小写
for(var i = 1;i < arr0.length;i++){
var char = arr0[i].charAt(0);
//使用 replace()方法将数组中的每个首字母大写化
arr0[i]=arr0[i].replace(char,char.toUpperCase());
}
return arr0.join("");
}
8、写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
ucFirst("hunger") == "Hunger"
function ucFirst(str) {
return str0 = str.replace(str.charAt(0), str.charAt(0).toUpperCase());
}
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 substr = str.substring(0, maxLength) + '...';
}
return str;
}
10、什么是 json?什么是 json 语言?JSON 语言如何表示对象?window.JSON 是什么?
JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 JavaScript 的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速度)。
JSON 语言
JSON 语法是 JavaScript 对象表示语法的子集。数据在名称/值对中;数据由逗号分隔;花括号保存对象;方括号保存数组 。
JSON 数据的书写格式是:名称/值对,名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开。
JSON 对象表示
JSON 语言用花括号表示对象。
var o = new Object //new 了一个对象,也可用大括号的方式来表示一个对象
var obj2 = {
name:'ruoyu',
age: 30,
sayName: function(argument){}
} //这种写法被称为对象的字面量表示方式
var str = '{"name": "Byron", "age": "24"}' //JSON 格式字符串
var obj = JSON.parse(str) //将字符串转化为对象后即可操作
window.JSON
用于判断浏览器是否兼容JSON的用法,例如IE8版本以上才内置支持JSON.parse方法,对此常见这样的写法:
if(window.JOSN){
jsonObj2 = JSON.parse(json);
}else{
}
11、如何把JSON 格式的字符串转换为 JS 对象?如何把 JS对象转换为 JSON 格式的字符串?
原生支持
IE以上浏览器都支持了一个对象JSON,JSON对象主要有两个『静态』函数
parse:把字符串转化为JSON对象
stringify:把JSON对象转化为字符串(出人意料的不叫toString,因为不是实例方法)
var json = {"name": "Byron", "age": 24};
var json_str = JSON.stringify(json);
//把JSON对象转化为字符串
console.log(json_str);
console.log(JSON.parse(json_str));
//把字符串转化为JSON对象
eval(不建议用)
邪恶的eval出现了,以前很多人图省事用eval把字符串转为json
var json_str = '{"name": "Byron", "age": 24}';
var json = eval( '(' + json_str + ')' );
//一个东西加了括号后会被认为是表达式,可以直接调用console.log(json);