1、使用数组拼接出如下字符串
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
//todo...
};
var result = getTplStr(prod); //result为下面的字符串
- 女装
- 短款
- 冬季
- 春装
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
var arr = [];
for(var attr in data){
if(typeof data[attr] === "string"){
arr.push("
}else{
for(var i = 0; i < data[attr].length; i++) {
arr.push("
}
}
}
arr = arr.join("");
return "
- " + arr + "
}
var result = getTpl(prod);
console.log(result);
2、写出两种以上声明多行字符串的方法
第一种:转义——行尾添加反斜杠 ‘ \ ’
var longString = "Long
long
string";
console.log(longString) // Long long string
第二种:拼接——使用连接运算符 ‘ + ’
var longString = 'Long ' // 引号内有空格
- 'long '
- 'string';
console.log(longString) // Long long string
第三种:函数——将条件注释、toString()组合成函数
var longString = (function () { /*
Long
long
string
*/}).toString().split('\n').slice(1,-1).join('-')
console.log(longString) // Long-long-string
说明
// .toString() 将对象转换成字符串(以字符串形式表示):此处为函数代码
// .split('\n') 参数作为分隔标识,将字符串切割成数组:此处为5个元素
// .slice(1, -1) 参数作为起始位置,挑选数组元素:此处为中间3个元素
// .join('-') 参数作为连接符,将数组元素拼接成字符串
3、补全如下代码,让输出结果为字符串: hello\饥人谷
var str = //补全代码
console.log(str)
var str = 'hello\\饥人谷';
console.log(str);
4、以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length)
原因:
\n 表示一个字符,其功能为换行,不会被打印出来
5、写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
var name='abcdcbb';
function cch(xxx){
var str=xxx;
var Ostr=str.split('').reverse().join('');
var onoff='';
for(var i=0; i< str.length;i++){
if(str[i]!=Ostr[i]){
onoff='false';
break
}else {
onoff='true';
}
}
return onoff
}
console.log(cch(name));
6、写一个函数,统计字符串里出现出现频率最多的字符
var str='dashdjkhjdigi jashduiwpa mmmmmm nnnnnn';
var att=str.split('');
var Obj={};
var mx=0;
var mxStr='';
var Max=[];
for(var i=0;iif(Obj[att[i]]){
++Obj[att[i]]
}else {
Obj[att[i]]=1
}
}
for(var x in Obj){
if(Obj[x]>mx){
mx=Obj[x];
}
}
for(var j in Obj){
if(Obj[j]==mx){
Max.push(j)
}
}
console.log('最长的文字有:'+Max+'长度:'+mx)
7、写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
function camelize(xxx){
var str=xxx;
var att=str.split('-');
for(var i=1;i< att.length;i++){
att[i]=att[i].charAt(0).toUpperCase()+att[i].substring(1)} return att.join('')
}
console.log(camelize('background-color'))
8、写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
function ucFirst(string){
return string[0].toUpperCase()+string.slice(1)
}
console.log(ucFirst("hunger"))
ucFirst("hunger") == "Hunger"
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){
str=str.slice(0,maxlength)+"..."
}
else{return str}
}
Q10、什么是 json?什么是 json 语言?JSON 语言如何表示对象?window.JSON 是什么?
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:
对象表示为键值对
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:
{"firstName": "John"}
这很容易理解,等价于这条 JavaScript 语句:
{firstName = "John"}
JSON 与 JS 对象的关系
很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:
JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
如
var
obj = {a:
'Hello'
, b:
'World'
};
//这是一个对象,注意键名也是可以使用引号包裹的
var
json =
'{"a": "Hello", "b": "World"}'
;
//这是一个 JSON 字符串,本质是一个字符串
JSON 和 JS 对象互转
要实现从对象转换为 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'}
window.JSON 是什么?
用于判断浏览器是否兼容JSON的用法,例如IE8版本以上才内置支持JSON.parse方法,对此常见这样的写法:
if(window.JOSN){
jsonObj2 = JSON.parse(json);
}else{
}
Q11、如何把JSON 格式的字符串转换为 JS 对象?如何把 JS对象转换为 JSON 格式的字符串?
要实现从 JSON 转换为对象,使用 JSON.parse() 方法:
要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法: