![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js基础
陈橙橙成大事
这个作者很懒,什么都没留下…
展开
-
sort( )
默认地,sort() 函数按照字符串顺序对值进行排序。该函数很适合字符串(“Apple” 会排在 “Banana” 之前)。不过,如果数字按照字符串来排序,则 “25” 大于 “100”,因为 “2” 大于 “1”。正因如此,sort() 方法在对数值排序时会产生不正确的结果。我们通过一个比值函数来修正此问题://升序var points = [40, 100, 1, 5, 25, 10];points.sort(function(a, b){return a - b}); //降序var原创 2021-03-11 14:30:12 · 66 阅读 · 0 评论 -
call、apply和bind
function fun(){ alert("我是fun函数!")}call( )和apply( )这两个方法都是函数对象的方法,需要通过函数对象来调用当对函数调用call( )和apply( )都会调用函数执行在调用call( )和apply( )可以将一个对象指定为第一个参数此时这个对象将会成为函数执行时的thisfun.apply( )fun.call( )fun( )var obj = {}//fun.call(obj)fun.apply(obj)解析器在调用函数每原创 2021-03-07 15:00:27 · 35 阅读 · 0 评论 -
数组基础
创建数组的两种方法://使用构造函数创建数组1.var arr = new Array( )2.var arr = [ ]数组的方法:push( )该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度可以将要添加的元素作为方法的参数传递这样这些元素将会自动添加到数组的末尾pop( )该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回unshift( )向数组的开头添加一个或更多元素,并返回新的长度向前边插入元素以后,其他的元素索引会依次调整shift(原创 2021-03-07 10:03:04 · 58 阅读 · 0 评论 -
三元表达式和模板字符
三元表达式( ? : ),就是简写的if-else语句?前面写的是判断条件 条件成立 执行 ?后面的表达式如果条件不成立 执行 : 后面的表达式var a = 50var b;if(a>10){ b = 100}else{ b = 200}console.log(b)var c = a>100 ? 100 : 200console.log(c)var d = a>100 ? 100 : 200console.log(d)//三元表达式 可以嵌套 三元表达式原创 2021-02-25 15:23:51 · 1142 阅读 · 0 评论 -
表单全选取消全选
案例分析:①全选和取消全选做法:让下面所有复选框的checked属性(选中状态)跟随全选按钮即可②下面复选框需要全部选中,上面全选才能选中做法:给下面所有复选框绑定点击事件,每次点击,都要循环查看下面所有的复选框是否有没选中的,如果有一个没选中,上面全选就不选中③可以设置变量,来控制全选是否选中④//获取元素var j_cbAll = document.getElementById('j_cbAll') //全选按钮var j_tbs = document.getElementById('j_原创 2021-01-20 18:42:08 · 631 阅读 · 0 评论 -
对象 字符串和对象的相互转换
对象转字符串案例:let obj = {title:‘手机’,pageIndex:3,pageSize:20}将上面的对象转为字符串格式:“title=手机&pageIndex=3&pageSize=20”//对象可以通过 for in 循环,遍历出它的所有的属性for(let key in obj){ console.log(key)}//获取对象属性的值,有两种方式,第一种是:对象.属性名 第二种是:对象['属性名']console.log(obj.title)原创 2021-01-19 12:46:57 · 4818 阅读 · 0 评论 -
定时器
setTimeout( )定时器语法规范:window.setTimeout(调用函数,[延迟的毫秒数])①window在调用的时候可以省略setTimeout( )方法用于设置一个定时器,该定时器在定时器到期后执行调用函数。setTimeout(function(){ console.log('时间到了')},2000)②这个延迟时间单位是毫秒 但是可以省略,如果省略默认的是0③这个调用函数可以直接写函数 还可以写 函数名 还有一个写法 ‘函数名()’【不太建议】//直接写函数set原创 2021-01-18 23:46:03 · 329 阅读 · 0 评论 -
this指向问题
this指向问题 一般情况下this的最终指向的是那个调用它的对象①全局作用域或者普通函数中this指向全局对象window(注意定时器里面的this指向window)console.log(this)function fn(){ console.log(this)}window.fn()window.setTimeOut(function()){ console.log(this)},1000)②方法调用中谁调用this指向谁var obj = { sayHi:function原创 2021-01-18 22:16:42 · 77 阅读 · 0 评论 -
arguments的使用
当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。//arguments 的使用 只有函数才有 arguments对象 而且是每个函数都内置好了这个argumentsfunction fn(){ console.log(arguments);//里面存储了所有传递过来的实参 console.log(arguments原创 2021-01-18 21:33:12 · 325 阅读 · 0 评论 -
数组
创建数组1.利用 new 创建数组var 数组名 = new Array()var arr = new Array() //创建一个新的空数组2.利用数组字面量创建数组//1.使用数组字面量方式创建空的数组var 数组名 = [ ]//2.使用数组字面量方式创建带初始化值的数组var 数组名 = [‘小白’,‘小黑’,‘大黄’,‘瑞奇’]获取数组元素格式:数组名[索引号]遍历数组:就是把数组的元素从头到尾访问一次。数组长度:数组名.length数组转换为字符串将数组[‘red原创 2021-01-18 17:44:09 · 277 阅读 · 0 评论 -
倒计时
①核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时,但是不能拿着时分秒相减,比如05分减去25分,结果会是负数。②用时间戳来做,用于输入时间总的毫秒数减去现在时间的总的毫秒数,得到的就是剩余时间的毫秒数。③把剩余时间总的毫秒数转换为天、时、分、秒(时间戳转化为时分秒)转换公式如下:d=parseInt(总秒数/60/60/24) //计算天数h=parseInt(总秒数/60/60%24) //计算小时m=parseInt(总秒数/60%60) //计算分数s=parseInt(总秒原创 2021-01-18 16:32:56 · 570 阅读 · 0 评论 -
JS冒泡排序
冒泡排序:摘要:冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行知道没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。案例:5 4 3 2 1第一趟:4 3 2 1 5第二趟:3 2 1 4 5第三趟:2 1 3 4 5第四趟:1 2 3 4 51.一共需要的趟数 我们用外层for循环5个数据我们一共需要走4趟长度就是数组长度减去1:ar原创 2021-01-18 15:42:54 · 84 阅读 · 0 评论 -
JS数组练习
1.要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组var arr = [14, 0, 27, 89, 0, 0, 52, 36, 0, 31, 1, 0]var newArr = []arr.forEach(item=>{ item == 0 ? 'continue' : 'newArr.push(item)'})console.log(newArr)2.数组去重//第一种方法(不改变原数组 生成一个新数组) indexOf()let arr = [1, 23,原创 2021-01-17 21:07:38 · 745 阅读 · 0 评论 -
js闭包函数案例
function a(){ let j = 10 let i = 10 console.log(i+j); //打印20 //初始化b let b = function(){ //里面的方法,用到了外面方法定义的变量 //所以,i会一直存在于内存中 //这样的函数,我们又称之为:闭包函数 i += 5 console.log(i); console.log('HelloWorld'); }原创 2021-01-17 18:28:10 · 179 阅读 · 0 评论 -
回调函数的案例
let arr = [11,22,33,44,55,111,222,333,444,555]//传统方法//找出数组中的所有的偶数for(let i=0;i<arr.length;i++){ if(arr[i]%2===0){ console.log(arr[i]); }}//找出数组中的所有三位数for(let i=0;i<arr.length;i++){ if(arr[i]>=100 && arr[i]<1000){ console.lo原创 2021-01-17 16:33:47 · 93 阅读 · 0 评论 -
回调函数
注意:方法的参数也是方法,那个参数我们称之为回调函数。let a = function(){ console.log('HelloWorld');}let b = function(){ console.log('你好世界');}function c(callback){ console.log('c开始...'); callback() console.log('c结束...');}c(b)c(a)回调函数的案例://计算器方法function calc(num1,原创 2021-01-17 16:12:29 · 55 阅读 · 0 评论 -
递归的小案例:使用递归算法实现菜单
//菜单 function menu(){ let no = parseInt(prompt('1.添加学生 2.查询学生 3.退出')) switch(no){ case 1: alert('添加学生') menu() //继续执行菜单 break; c..原创 2021-01-17 15:42:15 · 168 阅读 · 1 评论 -
经典面试题:使用递归算法,累加1到20之间所有数之和
递归方法,指的是:方法自己调用自己使用递归时,要一定要确保方法能够退出//传统思路解题方案function fun1(){ let sum = 0 for(let i=1;i<=20;i++){ sum+=i } return sum } let r1 = fun1() console.log(r1);//递归怎么做呢function fun2(num){ //判断num的值,如果是1,直接返回1 //其实,这里的if原创 2021-01-17 15:23:45 · 789 阅读 · 0 评论 -
1.求某个字符出现的位置以及次数2.判断出现次数最多的字符,并统计其次数
案例:思路查找字符串’abcoefoxyozzopp’中所有o出现的位置以及次数①核心算法:先查找第一个o出现的位置②然后 只要indexOf返回的结果不是-1就继续往后查找③因为index只能查找到第一个,所有后面的查找,利用第二个参数,当前索引加1,从而继续查找var str = 'abcoefoxyozzopp';var index = str.indexOf('o')var num = 0 //定义一个变量用来存放次数//console.log(index) //3while(in原创 2021-01-17 09:40:08 · 273 阅读 · 0 评论 -
添加千位符
let num = prompt('请输入一个数:')//备份字符串的长度let len = num.lengthfor(let i = len-3;i>0;i-=3){ //在插入逗号的位置,将原始数组先拆分成两份 let first = num.substring(0,i) let last = num.substring(i) num = first+','+last}console.log(num);...原创 2021-01-17 09:21:24 · 65 阅读 · 0 评论 -
字符串小练习
将一个字符串,如:http://www.jd.com?title=手机&type=华为&size=6000300050以这样的形式输出:title:手机type:华为size:6000300050let str = 'http://www.jd.com?title=手机&type=华为&size=6000*3000*50'//根据?符号,将str打散成数组,获取数组中的第二位let arr2 = str.split('?')let str2 = arr2[1原创 2021-01-17 09:12:39 · 59 阅读 · 0 评论 -
现在有一个字符串:abcdefg,如何让该字符串翻转呢?翻转字符串
//数组有翻转方法,字符没有!//现在有一个字符串:abcdefg,如何让该字符串翻转呢?//提示:字符串有split()方法,数组有reverse()方法和join()方法let str = 'abcdefg'//分步骤写let a = str.split('') //将原始字符串根据''打散成数组a.reverse() //将数组翻转一下let b = a.join() //再将翻转后的数组根据''拼接成新的字符串//连起来写//先转为数组,数组翻转,再将数组拼接回字符串let c原创 2021-01-17 08:53:42 · 555 阅读 · 0 评论 -
输入年份和月份,输出该月份有多少天
//提示:闰年公式:年份能被4整除并且不能被100整除,或者年份直接能被400整除。原创 2021-01-15 11:07:05 · 2699 阅读 · 0 评论 -
++a 和 a++的区别
var num6 = 5console.log(num6++); //++在后,是先返回原值,再自身加1console.log(num6);console.log(++num6); //++在前,是先自身加1,再返回值console.log(num6);console.log(num6–); //–在后,是先返回原值,再自身减1console.log(num6);console.log(–num6); //–在前,是先自身减1,再返回值console.log(num6);..原创 2021-01-15 10:49:00 · 61 阅读 · 0 评论