1,使用数组拼接出如下字符串
<script>
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function StitchString(obj){
for(var key in obj){
var str='<dl class="product">\n'
+'\t<dt>'+obj.name+'</dt>\n'
+'\t<dd>'+obj.styles[0]+'</dd>\n'
+'\t<dd>'+obj.styles[1]+'</dd>\n'
+'\t<dd>'+obj.styles[2]+'</dd>\n'
+'<dl>';
}
return str;
}
var result=StitchString(prod);
console.log(result);
</script>
注意:
1)\n写在引号里面才起作用
2)obj调用属性「key」时,用中括号要报错
2、写出两种以上声明多行字符串的方法
方法一:
var str="longstring\
longstring\
longstring\
"
方法二:
var str="longstring"
+"longstring"
+"longstring";
方法三:
var str=function(){/*
longstring
longstring
longstring
*/}
str.toString().split("\n").slice(1,-1).join("\n");
3、补全如下代码,让输出结果为字符串: hello\饥人谷
var str = "hello\\饥人谷"
console.log(str)
4、以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length)
输出:
jirengu
ruoyu
「\n」换行
5、写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
function check(str){
var strArray=str.split("").reverse().join("");
if(strArray===str){
console.log(true);
}else{
console.log(false);
}
}
var str1="abcdcba";
check(str1);//true
var str2="abcedfg";
check(str2);
注意:两个字符串如果内容不相等,那么它们比较会返回false
6、写一个函数,统计字符串里出现出现频率最多的字符
<script>
var str1="pearl,this is my firends,i love she very muchhahahahahahahaha";
function appearMore (str) {
var obj={};
var str1Array=str1.split("");
for(var i=0;i<str1Array.length;i++){
if(obj[str1Array[i]]){
++obj[str1Array[i]]
}else{
obj[str1Array[i]]=1;
}
}
var keyvalue;
var count=0;
for (var key in obj) {
if(obj[key]>count){
count=obj[key];
keyvalue=key;
}else{
continue;
}
}
console.log(keyvalue,":",count);
}
appearMore(str1);
</script>
7、写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如
function camelize(str){
if(typeof str==="string"){
var str1=str.split("-").join("");
if(str1===null){
console.log("");
}else{
console.log(str1);
}
}else{
console.log("请传入字符串")
}
}
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
camelize("-")
camelize("")
camelize(12);
8、写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
function ucFirst(str){
var strArray=[];
strArray=str.split("")
strArray[0]=strArray[0].toUpperCase();
var newstr=strArray.join("");
console.log(newstr);
}
ucFirst("hunger") == "Hunger"
9、写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...,
<script>
function truncate(str,num){
var newstr;
if(typeof str!=="string"){
console.log("请传入字符串");
}else{
if(str.length>num){
newstr=str.slice(0,num)+"...";
}else{
newstr=str;
}
console.log(newstr);
}
}
truncate("hello, this is hunger valley,", 10) == "hello, thi...";
truncate("hello world", 20) == "hello world"
</script>
10、什么是 json?什么是 json 对象?什么是 json 对象字面量?什么是 JSON内置对象?
- 什么是json?
数据交换的文本格式
- 什么是json对象?
每个JSON对象,就是一个值。要么是简单类型的值,要么是复合类型的值,但是只能是一个值,不能是两个或更多的值。这就是说,每个JSON文档只能包含一个值。 - 什么是 json 对象字面量?
对象:
var obj={
name:"pearl",
age:24
};
符合上面这种格式,这种格式就叫做对象字面量
json对象:
{
"name":"pearl",
"age":"24"
}
符合上面这种格式,这种格式就叫做json对象字面量
综上所诉对象字面量和json对象字面量的区别:
1)json对象字面量没有声明变量
2)json属性和值都要加双引号,不能是单引号
3)整个json结束没有分号(因为json不是javascript语句,它是一种数据交换格式) - 什么是json内置对象?
JSON就是json的内置对象,JSON具有两个只有JSON才有的方法:JSON.stringify()「把json对象转换成字符串」
JSON.parse()「把字符串转换成json对象」
11、如何把JSON 格式的字符串转换为对象?如何把对象转换为 JSON 格式的字符串?
JSON.parse('{"name":"pearl"}');//{"name":"pearl"}
JSON.stringify({"name":"pearl"});//"{"name":"pearl"}"