JavaScript问题记录

嘉美伯爵

前端开发 JS 289

JS测试

浏览器console即可

js中const、var、let区别

  • const定义的变量不可以修改,而且必须初始化。
const b = 2;//正确
// const b;//错误,必须初始化 
console.log('函数外const定义b:' + b);//有输出值
// b = 5;
// console.log('函数外修改const定义b:' + b);//无法输出 
  • var定义的变量可以修改,如果不初始化会输出undefined,不会报错
var a = 1;
// var a;//不会报错
console.log('函数外var定义a:' + a);//可以输出a=1
function change(){
a = 4;
console.log('函数内var定义a:' + a);//可以输出a=4
} 
change();
console.log('函数调用后var定义a为函数内部修改值:' + a);//可以输出a=4
  • let是块级作用域,函数内部使用let定义后,对函数外部无影响
let c = 3;
console.log('函数外let定义c:' + c);//输出c=3
function change(){
let c = 6;
console.log('函数内let定义c:' + c);//输出c=6
} 
change();
console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3

JSON

语法

  • 数字
{ "age":30 }
  • 数组(中括号必须在大括号里面)
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
  • JSON 对象
{ "name":"菜鸟教程" , "url":"www.runoob.com" }
  • JSON 布尔值
{ "flag":true }
  • JSON null
{ "runoob":null }

JSON.parse()

  • JSON 通常用于与服务端交换数据。
  • 在接收服务器数据时一般是字符串。
  • 我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。
JSON.parse(text[, reviver])

JSON.stringify()

  • JSON 通常用于与服务端交换数据。
  • 在向服务器发送数据时一般是字符串。
  • 我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。
JSON.stringify(value[, replacer[, space]])

数组过滤

map

用于对服务器返回的数据进行二次处理,这样前端可以有自己的数据结构

globalInfo[0].carousel.map(item => {
        item.image = item.image.replace('http', 'https')
      })

filter

用于过滤不需要的数据

$store.state.post.carousel.filter(item => item.type ===0)

foreach

js打开窗口

  • 当前窗口打开
window.location.href="http://www.gaozhe.net";
  • 新窗口打开
window.open("http://www.gaozhe.net");

运算

  • 向上取整
Math.ceil(25.333333//26
  • 向下取整
Math.floor(25.333333//25
  • 四舍五入
 Math.round(25.333333//23

参考文档