使用数组拼接出如下字符串 ,其中styles数组里的个数不定
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTplStr(data){
var arr = [];
arr.push('<dl class="product">');
arr.push('<dt>女装</dt>');
for (var i = 0; i<prod.styles.length; i++) {
arr.push('<dt>'+prod.styles[i]+'</dt>');
}
return arr.join('');
};
var result = getTplStr(prod); //result为下面的字符串
<dl class="product"><dt>女装</dt><dd>短款</dd<dd>冬季</dd><dd>春装</dd></dl>
写出两种以上声明多行字符串的方法
//如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠。
var str = 'hello\
world\
';
//连接运算符(+)可以连接多个单行字符串,用来模拟多行字符串。
var str = 'hello '
+ 'world '
+ '!';
补全如下代码,让输出结果为字符串: hello\\饥人谷
var str = "hello \\\\ jirengu"//补全代码
console.log(str)
以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length)
以上代码输出的str的长度为13,因为' \n '是换行符,不计入长度里面。
写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
var str1 = 'abcdcba';
var str2 = 'abcdcbb';
function symmetric(str) {
newStr = str.split('').reverse().join('');
if (str === newStr) {
return "是回文字符串";
} else {
return "不是回文字符串";
}
}
console.log(symmetric(str1)); //是回文字符串
console.log(symmetric(str2)); // 不是回文字符串
写一个函数,统计字符串里出现出现频率最多的字符
var str = "hello javascript css html vue.js react angualr !"
function maxChar(str) {
var obj = {},
character = '',
count = 0;
for (var i = 0; i < str.length; i++) { //把字符串整理成一个对象的形式 {a:2, b:5, d:8...}
if (obj[str[i]]) {
obj[str[i]]++;
} else {
obj[str[i]] = 1;
}
}
for (key in obj) {
if (obj[key] > count) { //找到最大值
count = obj[key];
character = key;
}
}
return '出现频率最多的字符是:' + character + ',' + '次数为:' + count;
}
console.log(maxChar(str)); //出现频率最多的字符是: ,次数为:7
写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串 (这里踩了for in遍历的一个巨坑)
var str = "list-style-image";
function camelize(str) {
var newArr = [];
var wordArr = str.split('-');
for (i in wordArr) {
i = parseInt(i); //这里的i是字符串'0',所以要这样处理 标准的for循环中的i是number类型,表示的是数组的下标,但是for in循环中的i表示的是数组的key是string类型
if (i === 0) {
newArr.push(wordArr[0]);
} else {
newArr.push(wordArr[i][0].toUpperCase() + wordArr[i].slice(1));
}
}
// for (var i = 0; i<wordArr.length; i++) {
// if (i === 0) {
// newArr.push(wordArr[0]);
// } else {
// console.log(i);
// newArr.push(wordArr[i][0].toUpperCase() + wordArr[i].slice(1));
// }
// }
newStr = newArr.join('');
return newStr;
}
console.log(camelize(str));
写一个 ucFirst函数,返回第一个字母为大写的字符
function ucFirst(str) {
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
console.log(ucFirst("hunger")); //Hunger
写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...,如
var str = "hello world";
function truncate(str, maxlength){
if (str.length>=maxlength) {
str = str.substr(0,maxlength) + '...';
}
return str;
}
console.log(truncate(str, 5)); //hello...
10、什么是 JSON格式数据?JSON格式数据如何表示对象?window.JSON 是什么?
概念
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速度
JSON的优点有:
- 书写简单,一目了然;
- 符合JavaScript原生语法,
- 可以由解释引擎直接处理,不用另外添加解析代码。
JSON 语法是 JavaScript 对象表示语法的子集
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 数据的书写格式是:名称/值对,名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:
var json1 = {"name": "Byron", "age": "24"}
var json2 = [
{"name": "Byron", "age": "24"},
{"name": "Byron2", "age": "25"}
]
window.JSON是浏览器内置对象,可用于判断浏览器是否兼容JSON的用法,例如IE8版本以上才内置支持JSON.parse方法。JSON对象内置了JSON.parse()、JSON.stringify()两种方法
11、如何把JSON 格式的字符串转换为 JS 对象?如何把 JS对象转换为 JSON 格式的字符串?
- 把字符串变成json对象:JSON.parse()
- 把json对象变成字符串:JSON.stringify()
//JSON字符串 ---> 对象
var str = ' {"name":"aaa","age":21}'
JSON.parse(str)
//对象 ---> JSON字符串
var obj = {
"name":"aaa",
"age":20
}
JSON.stringify(obj);
网友评论