1.解决函数内的this指向

  (1)可以在函数外提前声明变量  _this/=this

  (2)通过apply和call来修改函数内的this指向

  二者的区别:

  二者的用法不一样,就是参数形式不一样  fn.call(obj,a,b)/fn.apply(obj,[a,b])

  二者代表的是将函数内的this换成obj之后然后把fn调用了

  (3)bind修改函数内的this

  fn.bind(obj,a,b) 只是替换了this但是不调用fn,返回的还是函数

  fn.bind(obj,a,b)() 带上()就调用了

2.案例分析

  

  这就相当于写成了下面这种形式

  

  为什么用了call之后里面的names还是张三不是李四?

    fn.call(obj)是fn继承了obj中的所有属性,只要是继承的可以看成是共有的,天生自带的是私有的,在使用的时候,私有的有就不会找共有的

3.变量交换

  

4.找出数组中最大项和最小项

  例子:var a=[45,26,15,54,36,8,4]

  (1)借助math中的max

    Math.max.apply(null,a)  返回值就是最大值

  (2)借助数组中sort()

    

  (3)假设法

    

    

5.对数组排序的方法

  (1)借助array中的sort(function(a,b){return a-b])

  (2)冒泡排序

    

    一般用于数据排序  游戏排名

6.Math 数值对象

  Js自带的类  array  number  string  function  date  math  regexp  boolean

  Math类  math对象,研究它的部分属性和方法

  数学中的弧度和角度

  (1)弧度的 π   Math.PI

  (2)Math.sqrt(16)   返回平方根

  (3)Math.abs(x)  返回的是绝对值

  (4)Math.ceil(x)  返回x的上舍入

  (5)Math.floor(x)  返回x的下舍入

  (6)Math.max(a,b,c,d)  返回a,b,c,d中的最大值(a,b,c,d必须是数字)

  (7)Math.min(a,b,c,d)  返回的是a,b,c,d中的最小值(a,b,c,d必须是数字)

  (8)Math.random()  返回的是0-1之间的随机数

  (9)Math.round(x)  返回对x四舍五入后的值

  (10)Math.sin(x)  返回x的正弦值    对边比斜边

  (11)Math.cos(x)  返回x的余弦值    邻边/斜边

  (12)Math.tan(x)  返回x的正切值    对边/邻边    

js笔记21的更多相关文章

  1. Ext.Net学习笔记21:Ext.Net FormPanel 字段验证(validation)

    Ext.Net学习笔记21:Ext.Net FormPanel 字段验证(validation) 作为表单,字段验证当然是不能少的,今天我们来一起看看Ext.Net FormPanel的字段验证功能. ...

  2. SQL反模式学习笔记21 SQL注入

    目标:编写SQL动态查询,防止SQL注入 通常所说的“SQL动态查询”是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句. 反模式:将未经验证的输入作为代码执行 当向SQL查询的字符串中插入别 ...

  3. JAVA自学笔记21

    JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...

  4. Data Visualization and D3.js 笔记(1)

    课程地址: https://classroom.udacity.com/courses/ud507 什么是数据可视化? 高效传达一个故事/概念,探索数据的pattern 通过颜色.尺寸.形式在视觉上表 ...

  5. js笔记-0

    #js笔记-0 数组: indexOf方法: Array也可以通过indexOf()来搜索一个指定的元素的位置: var arr = [10, 20, '30', 'xyz']; arr.indexO ...

  6. PPK谈JS笔记第一弹

    以下内容是读书笔记,再一次温习JS好书:PPK谈JS window.load=initializePageaddEventSimple('window','load',function(){}) lo ...

  7. 面向小白的JS笔记 - #Codecademy#学习笔记

    前言 最初浏览过<JavaScript秘密花园>,前一段时间读过一点点<JavaScript语言精粹>和一点点<JavaScript高级程序设计>(一点点是指都只是 ...

  8. require.js笔记

    笔记参考来源:阮一峰  http://www.ruanyifeng.com/blog/2012/10/javascript_module.html   1. 浏览器端的模块只能采用“异步加载”方式 = ...

  9. JS笔记 入门第四

    小测试: 注意:取消所有的设定可以直接使用 document.getElementById("txt").removeAttribute("style"); 这 ...

随机推荐

  1. KMP(The Knuth-Morris-Pratt Algorithm)

    本文代码来自于中国大学MOOC KMP课件下载 注释内容为自己理解,如有错误请评论,或者私信给我,谢谢 #include <stdio.h> #include "stdlib.h ...

  2. Spring 实现策略模式--自定义注解方式解耦if...else

    策略模式 定义 定义一簇算法类,将每个算法分别封装起来,让他们可以互相替换,策略模式可以使算法的变化独立于使用它们的客户端 场景 使用策略模式,可以避免冗长的if-else 或 switch分支判断 ...

  3. 2Spring对象创建小结

    Spring的对象创建 Spring学习笔记 周芋杉2021/5/15 原理:工厂设计模式,通过反射创建对象. Spring工厂分类 非web环境:ClassPathXmlApplicationCon ...

  4. [bug] MySQL-Front连接MySQL 8.0失败

    原因: MySQL-Front不支持MySQL 8.0的密码认证方式 解决: 在mysql安装目录中my.ini文件末尾添加 default_authentication_plugin=mysql_n ...

  5. BUUCTF(十)[GXYCTF2019]Ping Ping Ping 1

    BUUCTF系列 /?ip=baidu.com /?ip=baidu.com|ls 正常回显,当cat flag.php时,提示不让输入空格,而且后面还不让出现falg字符 IFS IFS (Inte ...

  6. 攻防世界(三)Web_php_unserialize

    攻防世界系列:Web_php_unserialize 0x01.代码审计 1.类Demo中struct().destruct()函数分别在代码执行开始和结束时调用.而wakeup函数会在代码执行过程中 ...

  7. commit信息修改

    场景:向社区提交commit信息,code reviewer给你回复说,请添加TrivialFix并且完善commit信息.好吧,虽然这对代码的运行无关紧要,但是对于日后的代码管理是很有必要的. 解决 ...

  8. centos7 安装Anaconda3及使用

    centos7 安装Anaconda3及使用原创wangshu_liang 最后发布于2019-01-31 14:08:23 阅读数 1046 收藏展开最近在服务器上安装了anaconda3,先简单说 ...

  9. k8s滚动更新(8)

    一.k8s版本更新 滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 实践:部署 ...

  10. Python 简单的龟鱼游戏

    游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程 假设游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10 游戏生成1只乌龟和10条鱼 他们的移动方向均随机 乌龟的 ...