이제 JavaScript 화살표 함수 생성기 Date JSON에 대한 간략한 분석을 가져오겠습니다. 이제 그것을 여러분과 공유하고 모든 사람에게 참고 자료로 제공하겠습니다.
ES6 표준에는 Arrow Function이라는 새로운 기능이 추가되었습니다.
x => x *x 上面的箭头相当于: function (x){ return x*x; }
화살표 함수는 익명 함수와 동일하며 함수 정의를 단순화합니다. 위와 같은 것에는 표현식이 하나만 포함되어 있으며
심지어 { ... } 및 return도 생략됩니다. 여러 문을 포함할 수 있는 또 다른 방법이 있습니다. 이 경우 { ... } 및 return을 생략할 수 없습니다.
x =>{ if(x > 0){ return x * x; }else{ return -x *x; } }
매개변수가 하나가 아닌 경우 대괄호()를 사용하여 묶어야 합니다.
// 两个参数 (x,y) => x*x + y *y // 无参数; () =>3.14 // 可变参数 (x,y,...rest) =>{ var i, sum = x +y; for(i=0;i<rest.length;i++){ sum += rest[i]; } return sum; }
this
이제 화살표 함수는 this의 포인팅을 완전히 복구합니다. 이는 항상 외부 호출자 obj인 어휘 범위를 가리킵니다.
var obj = { birth:1990, getAge:function(){ var b = this.birth; // 1990 var fn = () => new Date().getFullYear() - this.birth; // this指向obj 对象。 return fn(); } } obj.getAge(); // 25
화살표 함수를 사용하는 경우 이전 해킹 방법
var that = this;
는 더 이상 필요하지 않습니다.
범위 지정 여부에 따라 화살표 함수에 바인딩되어 있으므로 call() 또는 적용()으로 화살표 함수를 호출할 때
바인딩할 수 없습니다. 즉, 전달된 첫 번째 매개 변수는 다음과 같습니다. 소홀히 하다.
var obj = { birth:1990, getAge:function(year){ var b = this.burth; // 1990 var fn = (y) =>y-this.birth; // this.birth 仍是1990 return fn.call({birth:2000},year); } }; obj.getAge(2015); // 25
generator
generator(생성기)는 ES6 표준에서 도입된 새로운 데이터 유형입니다. 생성기는 함수처럼 보이지만 여러 번 반환할 수 있습니다.
function* foo(x){ yield x +1; yieldx + 2; return x +3; }
제너레이터와 함수의 차이점은 제너레이터가 함수*(추가 * 기호 참고)로 정의되며 return 문 외에도 Yield를 사용하여 여러 번 반환할 수도 있다는 것입니다.
함수는 한 번만 반환할 수 있으므로 Tourmaline은 배열을 반환하지만 생성기로 교체하면 한 번에 하나의 숫자를 여러 번 반환할 수 있습니다.
function* fib(max){ var t, a = 0, b=1, n=1; while (n < max){ yield a; t = a +b; a = b; b = t; n++; } return a; }
직접 호출해 보세요:
fib(5); // fib {[[GeneratorStatus]]: "suspended", [[GeneratorReceiver]]: Window}
제너레이터를 직접 호출하는 것은 함수를 호출하는 것과 다릅니다. fib(5)는 제너레이터 객체를 생성할 뿐 아직 실행하지는 않습니다.
생성기 개체를 호출하는 방법에는 두 가지가 있습니다. 하나는 생성기 개체의 next() 메서드를 지속적으로 호출하는 것입니다.
var f = fib(5); f.next(); // {value: 0, done: false} f.next(); // {value: 1, done: false} f.next(); // {value: 1, done: false} f.next(); // {value: 2, done: false} f.next(); // {value: 3, done: true}
Date
JavaScript에서는 Date 개체를 사용하여 날짜와 시간을 나타냅니다. .
현재 시스템 시간을 얻으려면 다음을 사용하세요.
var now = new Date(); now; //// Wed Jun 24 2015 19:49:22 GMT+0800 (CST) now.getFullYear(); //2015,年份 now.getMonth(); // 5,月份,注意月份范围为0~11,5表示六月 now.getDate();// 24 ,表示24 号 now.getHours(); // 3,表示星期三 now.getMinutes(); // 19 ,24小时制 now.getSeconds(); // 22,秒 now.getMilliseconds(); //875 毫秒 now.getTime(); // 1435146562875, 以number形式表示的时间戳 如果要创建一个执行日期和时间的Date对象,可以用: var d = new Date(2015,5,19,20,15,30,123); d;// Fri Jun 19 2015 20:15:30 GMT+0800 (CST)
JSON
JSON은 JavaScript Object Notation의 약어로, 데이터 교환 형식입니다.
JSON에는 몇 가지 데이터 유형만 있습니다.
1,number: JavaScript의 숫자와 정확히 동일합니다.
2,boolean: JavaScript의 true 또는 false입니다. String ;
4,null:은 JavaScript의 null입니다.
5,array:는 JavaScript의 배열 표현입니다. - [];
6,object:는 JavaScript의 {...} 표현입니다.
SON도 문자 집합이 UTF-8이어야 한다고 규정하고 있으므로 여러 언어를 표현해도 문제가 없습니다. 통합 구문 분석의 경우 JSON 문자열은 큰따옴표 ""를 사용해야 하며 개체 키도 큰따옴표 ""를 사용해야 합니다.
Serializationvar guagua = {
name: '小明',
age: 14,
gender: true,
height: 1.65,
grade: null,
'middle-school': '\"W3C\" Middle School',
skills: ['JavaScript', 'Java', 'Python', 'Lisp']
};
JSON.stringify(xiaoming); // '{"name":"小明","age":14,"gender":true,"height":1.65,"grade":null,"
middle-school":"\"W3C\" Middle School","skills": ["JavaScript","Java","Python","Lisp"]}'
결과:
{ "name": "小明", "age": 14, "gender": true, "height": 1.65, "grade": null, "middle-school": "\"W3C\" Middle School", "skills": [ "JavaScript", "Java", "Python", "Lisp" ] }
두 번째 매개변수는 객체의 키 값을 필터링하는 방법을 제어하는 데 사용됩니다. 지정된 속성만 출력하려는 경우 Array:
JSON을 전달할 수 있습니다. stringify(xiaoming, ['name', 'skills'], ' ');
결과:
{ "name": "guagua", "skills": [ "JavaScript", "Java", "Python", "Lisp" ] }
또한 객체의 각 키-값 쌍이 함수에 의해 먼저 처리되도록 함수를 전달할 수도 있습니다. :
function convert(key, value) { if (typeof value === 'string') { return value.toUpperCase(); } return value; } JSON.stringify(guagua, convert, ' ');
위 코드는 모두 결합합니다. 속성 값은 모두 대문자입니다:
{ "name": "guagua", "age": 14, "gender": true, "height": 1.65, "grade": null, "middle-school": "\"W3C\" MIDDLE SCHOOL", "skills": [ "JAVASCRIPT", "JAVA", "PYTHON", "LISP" ] }
또한 Xiaoming의 직렬화 방법을 정확하게 제어하려면 Xiaoming의 toJSON() 메서드를 정의하여 데이터를 직접 반환할 수 있습니다. JSON이 직렬화해야 하는 항목:
DeserializationJSON 형식의 문자열을 가져오고 JSON.parse()를 직접 사용하여 이를 JavaScript 객체로 변환합니다.
JSON.parse('[1,2,3,true]'); //[1,2,3,true] JSON.parse('{"name":"瓜瓜","age":14}'); // Object{name:'瓜瓜',age:14} JSON.parse('true'); // true JSON.parse('123.45'):// 123.45 JSON.parse()还可以接收一个函数,用来转换解析出的属性: JSON.parse('{"name":"guagua","age":14}',function(key,value){ //把number * 2 if(key ==='name'){ return value + '同学' } return value; }) ; // Object{name: '瓜瓜同学',age: 14}
위는 제가 모두를 위해 컴파일한 내용입니다. 앞으로 모든 사람에게 도움이 될 것입니다.
관련 기사:
JavaScript의 블록 수준 범위, 개인 변수 및 모듈 모드에 대한 심층적인 이해(그림 및 텍스트 자습서) JavaScript 출력 표시 내용(기본 자습서) Javascript 일반 함수 함수의 차이점(코드와 결합하여 자세히 설명)위 내용은 JavaScript 화살표 함수 생성기 날짜 JSON의 자세한 해석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!