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. 云服务器Apache+MySQL(远程连接)+PHP等环境安装2021.5.9号配置

    云服务器Apache+MySQL(远程连接)+PHP等环境安装2021.5.9号配置 Linux版本:centos8.2 (其他版本提供适配) 安装方式:yum 今天使用centos8系统搭建了下云主 ...

  2. 客户端保存token到sessionStorage

    将token保存到客户端的sessionStorage 一.区分localStorage和sessionStorage localStorage是本地持久化存储 sessionStorage是浏览器会 ...

  3. 阿里云上安装 OpenStack 是什么体验

    阿里云上跑火车(安装 OpenStack Train 版本),猜猜最终花了多少钱? 前言 前面给大家提供了用虚拟机安装 OpenStack 的镜像,虽然已经很简便了,但还是略显笨重.一来镜像文件比较大 ...

  4. Ubuntu 20.04 搭建 LAMP 环境

    LAMP环境即Linux下配置Apache.Mysql.Php,话不多说 GO ! 0.下载之前先更新一波: 更新源 sudo apt-get update 更新软件 sudo apt-get upg ...

  5. rsync+inotify实现全网自动化数据备份

    第1章 环境配置 实例1-1 服务器及IP主机名规划 已知 4 台服务器主机名主机对应信息见下表: 服务器说明 外网 IP(NAT) 内网 IP(NAT)  主机名 web服务器 10.0.0.7/2 ...

  6. k8s集群部署(2)

    一.利用ansible部署kubernetes准备阶段 1.集群介绍 基于二进制方式部署k8s集群和利用ansible-playbook实现自动化:二进制方式部署有助于理解系统各组件的交互原理和熟悉组 ...

  7. mysql基础之mariadb库管理和表管理语句

    一.数据库管理语句 1.Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... cr ...

  8. 动态更换animator的animatorcontroller

    你可以这样 Animator animator = this.gameObject.GetComponent<Animator>(); animator.runtimeAnimatorCo ...

  9. 第一天:python学习-基础-计算机简史

    第一天:计算机简史 1.元始的计算方式 : 1.1:数手指头,结绳记事.符号记事.算筹(祖冲之-圆周率).算盘:计算效率较低. 1.2:15世纪航海活动各天文需求 计算比较繁重,出现计算尺工具,奥特雷 ...

  10. 2021 docker安装宝塔面板

    拉取CentOS镜像 docker pull centos 创建 docker 容器 启动镜像,映射主机与容器内8888(宝塔面板).888(PHPMYADMIN)端口 -v 挂在目录 为了能够保存( ...