javaScript特殊知识点归纳

map和set

1. map

var map = new Map([['tiger', 100],['cat',12],['dog',13]]);
console.log(map.get('cat')); //获取cat值
console.log(map.set('hello', 14)); //新增值
console.log(map.delete('tiger')); //删除tiger
console.log(map.set('dog',20)); //修改dog的值
console.log(map.has('dog')); //是否存在key: 'dog'

2.set

var set = new Set([1,2,3,3,'3']);
console.log(set);
console.log(set.add('4'));
console.log(set.delete('3'));
console.log(set.has('3'));
console.log(set.clear());

3.iterable类型(Array、Map、Set)

var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // 遍历Arrayconsole.log(x);
}
for (var x of s) { // 遍历Setconsole.log(x);
}
for (var x of m) { // 遍历Mapconsole.log(x[0] + '=' + x[1]);
}

Array(map和reduce方法)

1.map

由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果:

function pow(x) {return x * x;
}var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81]

2.reduce

再看reduce的用法。Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,其效果就是:

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)

3.filter

filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
例如,在一个Array中,删掉偶数,只保留奇数,可以这么写:

var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (x) {return x % 2 !== 0;
});
r; // [1, 5, 9, 15]

4.sort

通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。
Array的sort()方法默认把所有元素先转换为String再根据ASCII码进行排序

箭头函数

x => x * x

相当于

function (x) {return x * x;
}

console.log([1,2,3].reduce((x,y) => x*y));
x => ({ foo: x });//返回一个对象

箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。
由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略:

Date

JavaScript的月份范围用整数表示是0~11,0表示一月,1表示二月……

var today = new Date();
if (today.getMonth() === 1 && today.getDate() === 14) {//2月14号
}

JSON

JSON.stringify(obj, ['name', 'skills'], '  '); //第三个参数控制输出时的样式
JSON.stringify(obj, function(key, val){});
JSON.parse(objStr, function(key, val){});

generator

  • 形式上,Generator函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield语句,定义不同的内部状态.
  • 调用Generator函数,返回一个遍历器对象,代表Generator函数的内部指针。以后,每次调用遍历器对象的next方法,就会返回一个有着value和done两个属性的对象。value属性表示当前的内部状态的值,是yield语句后面那个表达式的值;done属性是一个布尔值,表示是否遍历结束。

class和原型继承

  • 原型继承
function inherits(child, parent) {var F = function() {};F.prototype = parent.prototype;child.prototype = new F();child.prototype.constructor = child;
}function Student(name) {this.name = name;
}
Student.prototype.hello = function() {console.log('hello,', this.name);
};function PrimaryStudent(obj) {Student.call(this, obj.name);this.grade = obj.grade;
}
inherits(PrimaryStudent, Student);

  • ES6 class及继承
class Student {constructor(name) {this.name = name;}hello() {console.log('hello', this.name);}
}
class PrimaryStudent extends Student{constructor(obj) {super(obj.name);this.grade = obj.grade;}
}

浏览器

  • window对象不但充当全局作用域,而且表示浏览器窗口。window.innerWidth window.innerHeight可以获取浏览器窗口的内部宽度和高度。内部宽高是指除去菜单栏、工具栏、边框等占位元素后,用于显示网页的净宽高。对应的,还有一个outerWidth和outerHeight属性,可以获取浏览器窗口的整个宽高。
  • navgator.userAgent
  • screen表示屏幕的信息属性有:
    • screen.width:屏幕宽度,以像素为单位;
    • screen.height:屏幕高度,以像素为单位;
    • screen.colorDepth:返回颜色位数,如8、16、24。
  • location对象表示当前页面的URL信息
  • document对象表示当前页面。由于HTML在浏览器中以DOM形式表示为树形结构,document对象就是整个DOM树的根节点。document对象还有一个cookie属性,可以获取当前页面的Cookie。
  • history对象保存了浏览器的历史记录,这个对象属于历史遗留对象,任何情况,你都不应该使用history这个对象了。

HTML5 fileReader API

<div id="test">
<input type="file" value="获取图片">
</div>
<div id="preview">
</div>
<script>document.querySelector('#test > input').addEventListener('change', function() {if(!this.value) {document.querySelector('#preview').innerHTML = '文件不存在';return;}var file = this.files[0];var reader = new FileReader();reader.onload = function(e) {var data = e.target.result;document.querySelector('#preview').innerHTML = '<img src="' + data + '" style="width:100px;height:100px;"/>';};reader.readAsDataURL(file);});
</script>

javaScript特殊知识点归纳相关推荐

  1. JavaScript学习知识点归纳

    JavaScript学习包括几大方面: 1.基础语法 2.JavaScript核心对象 3.DOM操作 4.BOM操作 5.正则表达式 6.AJAX 7.面向对象编程 以下依次为各版块相关内容==&g ...

  2. JavaScript知识点归纳之简介

    简介: 参照学习菜鸟教程上例子所做本JavaScript知识点归纳之XXX. 1.JavaScript直接写入HTML输出流: <script> document.write(" ...

  3. java webservice接口开发_给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)

    J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号.但是其实 J2EE 里面 ...

  4. 【笔记】AngularJs学习笔记[02]【实践回顾与知识点归纳】

    ⭐️ 本文首发自 前端修罗场(点击即可加入),一个专注 Web 技术.答疑解惑.面试辅导.职业发展的社区.现在加入,即可参与打卡挑战,和一群人一起努力.挑战成功即可获取一次免费的模拟面试机会,进而评估 ...

  5. c语言中小数乘法怎样写程序,四年级下册lbrack;小数乘法rsqb;知识点归纳

    与<四年级下册[小数乘法]知识点归纳>相关的范文 北师大版小学数学一年级(上册)知识点归纳 本册教材的教学内容 1 北师大版一年级数学(下册)知识点 一年级下册知识领域及结构图 一. 生活 ...

  6. javaScript常用知识点有哪些

    javaScript常用知识点有哪些 一.总结 一句话总结:int = ~~myVar, // to integer | 是二进制或, x|0 永远等于x:^为异或,同0异1,所以 x^0 还是永远等 ...

  7. 零压力学python_《零压力学Python》 之 第一章知识点归纳

    第一章(初识Python)知识点归纳 Python是从ABC语言衍生而来的 ABC语言是Guido参与设计的一种教学语言,为非专业编程人员所开发的. Python是荷兰程序员 Guido Van Ro ...

  8. 二级考试c语言中 星号与字母 题型总结,2017年计算机二级考试C语言知识点归纳...

    2017年计算机二级考试C语言知识点归纳 计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知 ...

  9. 河南招教考试计算机专业知识,河南教师招聘考试《计算机网络技术基础》知识点归纳七...

    河南教师招聘考试<计算机网络技术基础>知识点归纳七 1.ADSL是非对称数字用户线路,其下行速率为1.5-8 Mb/s,而上行速率则为16-640 kb/s.在一对铜双绞线上的传送距离可达 ...

  10. 2018计算机二级c知识,2018全国计算机二级考试C语言常考知识点归纳

    2018全国计算机二级考试C语言常考知识点归纳 1)程序结构是三种:顺序结构,循环结构(三个循环结构),选择结构(if 和switch) 2)读程序都要从main()入口,然后从最上面顺序往下读(碰到 ...

最新文章

  1. Javascript正则表达式难点、重点
  2. 深入理解CSS计数器
  3. P2P平台选择网关支付、第三方托管、第三方+银行联合托管有什么区别?
  4. linux内核能否扩展,Linux内核用到的GCC扩展
  5. 几款流行的HTML5 UI 框架比较
  6. 直线回归数据 离群值_处理离群值:OLS与稳健回归
  7. 个人作业5——软工个人总结
  8. html清除require报错,javascript - requirejs加载报错问题?
  9. 绕过模拟器检测_用模拟器玩刺激战场体验差?这样设置轻松吃鸡
  10. Trufun Kant Studio 2008面向VS.NET的开发应用
  11. 2020 年百度之星·程序设计大赛 - 初赛一 GPA DFS深搜
  12. 开课吧:从事数据分析必备能力有哪些?
  13. Eclipse主题设置方法(系统主题设置、自行下载主题设置)
  14. 每天进步一点点——Linux系统中的异常堆栈跟踪简单实现
  15. [SiFi]三体中英名词翻译chapter1-3
  16. STN网络官方文档复现
  17. mysql分页合并同类项,人教版初三数学复习目录(全)
  18. Sql语句查询今天、昨天、本月等日期数据
  19. [深入研究4G/5G/6G专题-40]: URLLC-11-《3GPP URLLC相关协议、规范、技术原理深度解读》-5-5G Qos原理与架构: 切片、PDU会话、QosFlow、5QI、DRB
  20. html5 canvas 椭圆,html5中怎么利用Canvas绘制椭圆

热门文章

  1. Busybox 1.17.4 编译及错误解决方案
  2. Error response from daemon: conflict: unable to delete feb5d9fea6a5 (must be forced) - image is bein
  3. 服务器宕机指的是什么意思?
  4. Html中版权符号的字体选择问题(如何让版权符号更美观)
  5. java 定时关机_win7电脑怎么设置定时关机_win7电脑设置定时关机的详细教程-win7之家...
  6. JS对象(对象的创建、属性的增删改查、属性的检测和枚举)
  7. menu在python中的意思_Python-Tkinter 组件之Menu
  8. 赖特 因果分析_量子至上的赖特的东西
  9. 简单实用的vue常用后台管理模板框架
  10. 对工作节点执行drain操作时,通过pdb保护pod副本数