数组比较大小的几种方法及math是方法
call apply bind 的区别?
解决函数内this的指向:
1.可以在函数外提前声明变量 一般情况下我们用 var _this/that=this
2.通过apply和call来修改函数this指向
apply和call的区别?
用法一样,就是参数形式不一样 (案例: fn.call(obj,a,b) fn.apply(obj,[a,b]))(禁忌:fn为函数但是不能带())
二者代表函数内的this换成obj之后然后把fn调用
3.bind修改函数内的this (fn.bind(obj,a,b))只是替换了this,但是不调用fn,返回的还是函数
bind适合于事件:call apply适合于全局变量(在原形上继承)
fn.call(obj) (call()一个参数必须是对象)
解析:是fn继承了obj中的所有属性,只要继承的可以看成是公有的,天生自带的私有的,在使用的时候,私有的就不会找公有的:
案例:
function fn(){
this.name="张三"
console.log(this.name)
}
var obj={
name:"李四"
}
fn.call(obj) 最后的结果还是张三, 他相当于这种写法 fn.prototype.name="李四"
变量的交换:(举例说明,比如有a杯茶水,还有b瓶饮料,如果想让a杯放饮料,让b瓶放茶水,只能在拿一个空杯,把a杯的茶水放到空杯里面,那么a杯就空了,再把b瓶的饮料,倒进a杯就可以了,那么b杯就空了,再把原来的空杯里面装茶水,倒进b杯就可以了)
案例:
var a=4;
var b=3;
var n=null;
n=a;
a=b;
b=n;
console.log(a,b)
找出数组中最大的值:
var arr=[45,26,15,54,36,8,4]
1.借助Math中的max;(最简单的方法)
Math.max.apply(null,a) 返回值就是最大值;
2.借助数组中的sort;
var fn=function(a,b){
retrun a-b
}
var s=a.sort(fn)
console.log(s[s.length-1])
3.假设法:(比较法)
var max=a[0]
var num=null;
for(var i=1;i<a.length;i++){
if(max<a[i]){
num=max;
max=a[i];
a[i]=null;
}
console.log(max)
4.冒泡排序
var num=null;
for(var j=a.length-1;j<=0;j--){
for(var i=0;i<j;i++){
if(a[i]<a[i+1]){
num=a[i];
a[i]=a[i+1];
a[i+1]=num
}
}
}
math数值对象;
js自带的类 基类:object
子类:Function(函数) Array(数组) Number(数字) String(字符串) Date(日期) Math(算术) RegExp(正则) Boolean(布尔)
Math()类 math对象,研究他的属性和方法;
数学中的弧度与角度
1弧度=╥/180度 1角度=180/╥弧度
1.弧度中的╥ Math.PI
2.返回平方根:Math.sqrt(16) 返回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中的最小值;
8.Math.random() 返回0-1之间的随机数;
9.Math.round() 返回四舍五入的数值;

10.Math.sin(x) 返回x的正弦;(对边比斜边)
11.Math.cos(x) 返回x的余弦; (临边比斜边)
12.Math.tan(x) 返回x的正切值 (对边比临边)
13.Math.asin(x) 返回x的反正弦;(知道边求角)
14.Math.acos(x) 返回x的反余弦; (知道边求角)
15.Math.atan(x) 返回x的反正切值 (知道边求角)
数组比较大小的几种方法及math是方法的更多相关文章
- 【转载】C#使用Math.Ceiling方法对计算结果向上取整操作
在C#的数值运算中,有时候需要对计算结果进行向上取整操作,支持设定结算结果的有效位数,Math.Ceiling方法是C#中专门用来对数值进行向上取整的方法,此方法和Math.Round方法.Math. ...
- js注意点:数组比较大小方法及数组与对象的区别
(迁移自旧博客2017-04-19) 快速复制数组及数组比较大小方法 首先介绍一下复制数组的方法: var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; var ...
- Knockout获取数组元素索引的2种方法,在MVC中实现
原文:Knockout获取数组元素索引的2种方法,在MVC中实现 在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespa ...
- php数组合并有哪三种方法
php数组合并有哪三种方法 一.总结 一句话总结:array_merge():array_merge_recursive():‘+'号 $a = array('color'=>'red',5,6 ...
- JavaScript 数组去重的那几种方法
数组去重是最常见的面试题,现在总结一下我所知道的几种 首先第一个就是es5 最常见的循环比较 var array= [1, 1, 2]; function test(nums) { for (var ...
- Java中有四种常见的Map实现方法
在 HTML5 之前我们做图片预览主流做法有两种,第一种是通过 Flash 插件来做预览,第二种是 Ajax 实现的假预览,也就是说选择图片文件后,图片其实已经异步上传到服务器,服务器处理后返回图片路 ...
- 在C++的函数中如何指定一个数组,使得这个数组的大小由函数的输入值来决定
今天调试一个C++程序,在一个函数中定义了一个一维数组,设定数组的大小由函数的输入值来决定. 是这样子的: ]; 然后发现:报错! 报错是这样的: 那么问题来了,在C++中定义数组一定要指定数组大小么 ...
- JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)
day46 一丶javascript介绍 JavaScript的基础分为三个 1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...
- js中几种实用的跨域方法原理详解(转)
今天研究js跨域问题的时候发现一篇好博,非常详细地讲解了js几种跨域方法的原理,特分享一下. 原博地址:http://www.cnblogs.com/2050/p/3191744.html 下面正文开 ...
随机推荐
- MyEclipse持续性开发教程:用JPA和Spring管理数据(五)
MyEclipse 3.15 Style——在线购买低至75折!火爆开抢>> [MyEclipse最新版下载] 本教程介绍了MyEclipse中的一些基于JPA / Spring的功能.有 ...
- 深入理解Linux网络技术内幕——PCI层和网络接口卡
概述 内核的PCI子系统(即PCI层)提供了不同设备一些通用的功能,以便简化各种设备驱动程序. PCI层重要结构体如下: pci_device_id 设备标识,根据PCI标志定 ...
- L237
The British parliament on Tuesday rejected overwhelmingly the Brexit deal, further complicating the ...
- ABP .Net Core 调用异步方法抛异常A second operation started on this context before a previous asynchronous operation completed
1. 问题描述 最近使用ABP .Net Core框架做一个微信开发,同时采用了一个微信开发框架集成到ABP,在微信用户关注的推送事件里调用了一个async 方法,由于没有返回值,也没做任何处理,本 ...
- ReactNative——UI2.组件生命周期
对于习惯了iOS开发的同学,可能会对React Native中组件的生命周期很困惑.在iOS中有一个ViewDidLoad来初始化,那么在RN中,又是在哪里呢? 一.看图分析 在下图中描述了React ...
- 阿里java面试题
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
- Java面试通关要点汇总整理【终极版】
简历篇 请自我介绍 请介绍项目 基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区 ...
- BC32(hdu5182~5185)
恩……又是一个悲伤的故事,然后BC做出来一题,因为自己傻逼,可能紧张,也可能是其他,反正没看全题目就敲,敲完WA,WA完改,改完WA,没了……大概五十几分钟WA了五法,然后问了才知道没看全,就这样,后 ...
- LG3372 【【模板】线段树 1】
介绍我的三种算法 1.线段树 既然这题是线段树板子,我还是尊重一下先发这个.跑的时间376ms不是很快,但也还是不错.O(nlogn). #include<iostream> #inclu ...
- Jenkins系列之Jenkins配置常用工具和如何下载插件
上一篇我们介绍了Jenkins的安装,这一篇我们介绍如何配置Jenkins的工具和如何下载插件. 首先我们先来看如何配置工具,这里的工具是指JDK.Ant.Maven.Git等. 1.点击系统管理,如 ...