javascript-语句

1.对象时不可迭代访问的。尝试使用for/of循环会throw TypeError

  let o={x:1,y:2,z:3};
  for(let element of o){
    console.log(element);
  }//throw typeError

2.可以使用Object.keys()方法实现对象迭代

let o={x:1,y:2,z:3};
let keys="";
for(let k of Object.keys(o)){
  keys+=k;
}//keys="xyz"

Object.keys()会返回由对象属性构成的数组,数组可以迭代。

如果只关心对象的值可以用下面方式:

let sum=0;
for(let v of Object.value(o)){
  sum+=v;
}//sum=6;

如果值和属性都关心则:

let pairs="";
for(let[k,v] of Object.entries(o)){
  pairs+=k+v;
}//pairs="x1y2z3"

3.Es6以后字符串是可以迭代的

let frequency={};
for(let letter of "mississippi"){
  if(frequency[letter]){
    frequency[letter]++;
}else{
  frequency[letter]=1;
  }
}//结果{m:1,i:4,s:4,p:2}用于统计字符出现的频率。

4.Set集合,Map映射

let text="Na na na na na na na Batman!";
 let wordSet=new Set(text.split(" "));
 let unique=[];
for(let word of wordSet){
 unique.push(word);
}//集合中的元素不重复,所以结果为unique=["Na","na","Batman!"]

Map的迭代是返回的键值对。

let m=new Map([1,"one"]);
for(let[key,value] of m){
  key
value
}

5.4.5 for/in
for/of要求处理对象是可迭代的。for/in可以适用于任何的对象。

for(let p in o){
  console.log(o[p]);
}

使用数组遍历时,需要用for of代替for in的使用。

6.严格模式strict mode和非严格模式的区别
(1)严格模式不允许使用with
(2)严格模式,所有的变量必须在使用前进行声明。
(3)严格模式中,函数调用其他函数this指针是Undefined。非严格模式,函数调用函数会传递全局的this指针。
严格模式中,函数调用call(),apply()this的值会作为第一参数传递给call(),apply(),非严格模式,null,undefined值会被全局对象替代,非对象值会被转化为对象。
(4)严格模式,对不可写的属性赋值,对不可扩展的对象添加新属性会throw TypeError。非严格模式会失败,但不会报错。
(5)严格模式,eval()不能定义变量,定义函数。非严格模式可以。eval()定义的函数和对象,在eval返回时会被舍弃。
(6)严格模式,删除操作符delete在删除变量,函数,函数参数时会抛出SyntaxError异常,非严格模式表达式无效,返回false
(7)严格模式,对象定义两个同名属性时会报错,非严格模式不会报错。
(8)严格模式,函数声明有两个同名参数时会报错,syntax error非严格模式不回报错。
(9)严格模式,标识符eval,arguments会被视为关键字,不允许改变他们的值。
(10)严格模式,对栈的操作会受限制。arguments.caller arguments.callee会throw TypeError
7.函数可以调用放在声明之前,类必须先声明在调用。
8.import 和export
值对文件来说是私有的,必需显式声明,其他文件才可以使用该值
const PI=Math.PI;
const TAU=2*PI;
export{PI,TAU};

import Circle from './geometry/circle.js'
import {PI,TAU} from './geometry/constants.js'

export const TAU=2Math.PI;
export function magnitude(x,y){return Math.sqrt(x
x+y*y);}
export default class Circle{}

posted @ 2024-11-25 15:00  zhongta  阅读(13)  评论(0)    收藏  举报