函数 js对象 Math对象 日期对象 数组对象 字符串对象

1
  • 新数组应该从0开始 一次递增

函数

函数不调用不执行

认识函数
  1. 函数是做什么的

    大量代码重复使用,函数封装了一段可以重复使用的代码块

  2. 声明函数用什么关键词

    function 函数名(){

    }

    函数名()

  3. 如何调用函数

    函数名()

  4. 封装是什么意思

    打包 把函数整合到一个整体

函数的参数

function 函数名(形参1,形参2…){

}

函数名(实参1,实参2…)

形参是接受实参的

函数的参数可以有也可以没有

函数返回值

函数只是实现某种功能,最终的结果需要返回给函数的调用者函数名()通过return实现

只要函数遇到return 就把后面的结果

  • return 终止函数
  • return 只能返回一个值.如果用逗号隔开,以最后一个为准
  • 函数如果有return,则返回的是函数后面的值,如果没有return则返回undefined

break 结束当前循环(如 for while)

continue 跳出本次循环,继续执行下次循环(如 for while)

return 不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前的函数内的代码

arguments

只有函数才有arguments对象 二球每个函数都内置好了arguments

伪数组 并不是真正意义上的数组

  1. 具有数组的length属性
  2. 按照索引的方式进行存储的
  3. 它没有真正数组的一些方法 例如:pop() push() 等
函数声明
  1. fun是变量名 不是函数名
  2. 函数表达式声明方式跟声明变量差不多,只不过变量里面存的是指 而函数表达是里面存的是函数
  3. 函数表达式也可以进行传递参数

作用域

  1. js作用域 就是变量在某个范围内起作用和效果 目的是为了提高程序的可靠性 更重要的是减少命名冲突

  2. js的作用域(es6)之前:全局作用域 局部作用域

  3. 全局作用域:整个script标签 或者单独的js文件

  4. 局部作用域 在函数内部作用域 这个代码的名字只在函数内部起效果和作用

变量的作用域

变量的作用域: 根据作用域的不同 变量分为全局变量和局部变量

  1. 全局变量: 在全局作用域下的变量 在全局下都可以使用
  2. 局部变量: 在局部作用域下的变量 后者在函数内部使用的变量
  3. 从执行效率来看全局变量和局部变量
    1. 全局变量只有浏览器关闭的时候才会销毁,比较占内存资源
    2. 局部变量 当我们程序执行完毕就会销毁,比较节约内存资源
  4. 块级作用域(es6) {块级作用域} 花括号里的
作用域链

根据内部函数可以访问外部函数的变量, 采用的是链式查找的方式来决定去巴格之 这种结构称为作用域链 就近原则

js预解析

js代码是通过浏览器中的js解释器运行的

  1. js引擎运行加上代码分为两步: 预解析 代码执行
    1. 预解析 js引擎会把js里面所有的var还有function提升到当前作用域的最前面
    2. 代码执行 按照代码书写的顺序从上往下执行
  2. 预解析分为 变量预解析(变量提升) 和 函数预解析(变量提升)
    1. 变量提升 就是把所有的变量声明提升到当前的作用域最前面 不提升赋值操作 (即只提升变量声明不提升赋值)
    2. 函数提升 就是把所有的函数声明提升到当前作用域的最前面 不调用函数

js对象

在js中 对象是一组相关属性和方法的集合,所有的失误都可以是对象。 对象是由属性和方法组成的

创建对象
  1. 利用对象字面量创建对象{}

    var obj={}

    (1) 里面的属性或者方法采取键值对的形式 键 属性名:值 属性值

    (2) 多个属性或者方法中间用逗号隔开的

    (3) 方法冒号后面跟的是一个匿名函数

  2. 使用对象

    (1)用 . 调用对象的属性 我们采取 对象名.属性 . 理解为 的

    (2)调用属性还有一种方法 对象名[‘属性名’]

    (3)调用对象的方法 sayHi 对象名.方法名()

  3. 变量、属性、函数、方法的区别

    1. 变量和属性的相同点 :都是用来存储数据的

      变量 单独声明并赋值 使用的时候直接写变量名 单独存在

      属性 在对像里面的不需要声明 使用的时候必须是 对象.属性

    2. 函数和方法的相同点 都是实现某种功能 做某件事

      函数是单独声明 并且调用的 函数名()单独存在的

      方法在对象里面 调用的时候 对象.方法()

  4. 利用new Object创建对象

    var obj=new Object()
    
    1. 利用等号 = 赋值的方法 添加对象的属性和方法
    2. 每个属性和方法之间用分号 ; 结束
  5. 利用构造函数创建对象

    构造函数 : 就是把对象里面一些相同的属性和方法抽象出来封装到函数里面

     function 构造函数名(){
    
    this.属性=this.方法=function(){}
    
    }
    
    new 构造函数名()
    
    1. 构造函数名字首字母要大写
    2. 构造函数不需要return 就可以返回结果
    3. 调用构造函数,必须使用new
    4. 只要new Start() 调用函数就创建一个对象ldh{}
    5. 我们的属性和方法前面必须添加this
    function Start(uname, age, sex){
        this.name= uname;
        this.age= sge;
        this.sex = sex;
        this.sing=function(sang){
            console.log(sang)
        }
    }
    var ldh=new Start("刘德华",20,"男")
    ldh.sing("冰雨)
    
  6. 构造函数和对象

    构造函数 泛指某一大类 它类似于 java 语言里面的类(class)

    对象特指 是一个具体的失误

  7. new关键字执行过程

    1. new 构造函数可以在内存中创建一个空对象
    2. this 就会指向刚才创建的空对象
    3. 执行构造函数里面的代码 给这个空对象添加属性好方法
    4. 返回这个对象
遍历对象

for…in…遍历对象

for( 变量 in 对象){

}
for(var k in obj){
    console.log(k) // k变量 输出 得到的是 属性名
    console.log(obj[k])  //obj[k]得到的是属性值(value)
}

js内置对象

查文档 :MDN

Math对象
Math.PI()  //一个属性  圆周率
Math.max(1,88,33)  //函数返回一组数中的最大值  给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN。  如果没有参数,则结果为 - Infinity。
Math.min() //去最小值
Math.abs() //绝对值  会把字符串型的数字转换为数值型
Math.floor() // 向下取整
Math.ceil() // 向上取整
Math.round() // 四舍五入取整  注意-3.5 结果:-3
Math.random() //返回随机小数 包头不包尾
// 得到两个数之间的随机整数 并且包含这两个整数
Math.floor(Math.random()*(max-min+1))+min
日期对象

Date() 日期对象 是一个构造函数 必须使用new 来调用日起对象

 var arr=new Array()
 var obj = new Object()
// 1. 使用Date 如果没有参数 返回当前系统的当前事件
 var date= new Date()
 // 2. 参数常用的写法 数字型 2019,10,01  或者是 字符串型 '2019-10-01 8:8:8'
 var date1=new Date('2019-10-1 8:8:8') 
 date.getMonth()+1 // 月份 获取当前月份(0-11)
date.getDate() // 获取当天日期
date.Day()  // 获取星期几(周日0 到周六6)
date.getHours()  // 获取当前小时
date.getMinutes() // 获取当前分钟
date.getSeconds() // 获取当前的秒数

时间戳:1970年1月1日开始到现在的毫秒数

通过valueOf() getTime() 获得 或者 +newDate() 或者(H5新增) Date.now()

倒计时:
d=parseInt(总秒数/60/60/24); // 计算天数
h=parseInt(总秒数/60/60%24); // 计算小时
m=parseInt(总秒数/60%60);  // 计算分钟
s=parseInt(总秒数%60); //计算当前秒数
function countDown(time){
   var nowTime= +new Date();  // 返回当前事件总的毫秒数
   var inputTime = +new Date(time); // 返回的是用户输入时间总的毫秒数
   var times = (inputTime-nowTime)/1000 // times 是剩余时间总的秒数
   var d=parseInt(times/60/60/24); // 计算天数
   d=d<10?'0'+d:d
   var h=parseInt(times/60/60%24); // 计算小时
   var m=parseInt(times/60%60);  // 计算分钟
   var s=parseInt(times%60); //计算当前秒数
   return d+"天"+h+"时"+m+"分"+s+"秒"
}
console.log(countDown('2019-11-8 20:00:10'))
数组对象

创建数组

  1. var arr=[]
  2. var arr1= new Array()

检测数组

  1. instanceof 运算符 可以用来检测是否为数组

    arr instanceof Array 布尔值

  2. Array.isArray(参数) h5新增的方法 ie9 才支持

添加删除数组

  1. push() 在数组的末尾 添加一个或者多个数组元素 push 推

    1. push 是可以给数组的后面追加新的元素
    2. push() 参数直接写 数组元素就可以了
    3. push完毕之后,返回的结果是 新数组的长度
    4. 原数组也会发生变化
  2. unshift 在数组的开头 添加一个或者多个数组元素

    1. unshift 是可以给数组的前面追加新的元素
    2. unshift () 参数直接写 数组元素就可以了
    3. unshift 完毕之后, 返回的结果是 新数组的长度
    4. 原数组也会发生变化
  3. pop() 删除数组的最后一个元素 arr.pop()

    1. 可以删除数组里面的最后一个元素 一次只能删除一个元素
    2. pop() 里面不跟参数
    3. 返回值是删除的元素
    4. 原数组会发生变化
  4. shift() 它可以删除数组的第一个元素 arr.shift()

    1. shift可以删除数组里面的第一个元素 一次只能删除一个元素
    2. shift() 里面不跟参数
    3. 返回值是删除的元素
    4. 原数组会发生变化

数组翻转 arr.reverse()

数组排序(冒泡排序)

var arr1=[1,2,5,3,7];
arr1.sort(function(a,b){
    return a-b  // 按照升序的顺序排列
})
console,log(arr1)

数组索引

  1. indexOf() 数组中查找给定元素的第一个索引 如果存在则返回索引号 如果不存在 则返回-1
  2. lastIndexOf() 在数组中的最后一个的索引 如果存在则返回索引号 如果不存在 则返回-1

数组转字符串

  1. toString 把数组转换成字符串,逗号分隔每一项 返回一个字符串
  2. join(“分隔符”) 方法用于把数组中的所有元素转换成一个字符串 返回一个字符串
字符串对象
  • 复杂数据类型才有属性和方法
  1. 基本包装类型

    就是把简单数据类型包装成为了复杂数据类型。

  2. 字符串的不可变性

    指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间

    字符串的所有的方法,都不会修改字符串本身(字符串不可变),操作完成会返回一个新的字符串。

    1. indexOf() 数组中查找给定元素的第一个索引 如果存在则返回索引号 如果不存在 则返回-1
    2. lastIndexOf() 在数组中的最后一个的索引 如果存在则返回索引号 如果不存在 则返回-1
    3. chartAt(index) 根据位置返回字符
  3. concat(str1,str2,…) contact() 方法用于连接两个或多个字符串。拼接字符串,等效于+,+更常用

  4. **substr(start,length) ** 从start位置开始(索引号),length去的个数

  5. substr(start,end) 从start开始,截取end位置.end取不到(索引号)

  6. substring(start,end) 从start开始,截取end位置.end取不到(索引号) 不接受负值

  7. 替换字符串replace(‘被替换的字符串’,‘替换为字符串’) 它只会替换第一个字符

  8. 字符串转换为数组 split(‘分隔符’)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值