目录
1、math方法
<script>
// abs 绝对值
// var a = -5.58
//console.log(Math.abs(a)) // 5.58
// round 取整 四舍五入
// console.log(Math.round(a)) // -6
// ceil 向上
// console.log(Math.ceil(a)) // -5
// console.log(Math.ceil(-6.78)) // -6
// floor 向下
// console.log(Math.floor(a)) // -6
// max 最大值 min 最小值
// var obj1 = [1,6,5,3]
// console.log(typeof obj1)
// console.log(Math.max(1,6,5,3))
// console.log(Math.min(1,6,5,3))
// random
// console.log(Math.random()*10)
</script>
2、data对象
获取当前时间 | new Date() |
年 | getFullYear() |
月(月份要加1才是北京时间) | getMonth() |
日 | getDate() |
分钟 | getMinutes() |
秒 | getSeconds |
时间戳 | Date.now() |
<script>
//获取当前时间
var data = new Date
// 获取年 getFullYear
var year = data.getFullYear()
// 获取月 getMonth 月份要加1才是北京时间
var mon = data.getMonth()+1
// 获取日 getDate
var date = data.getDate()
// 获取小时 getHours
var h = data.getHours()
// 获取分钟 getMinutes
var m = data.getMinutes()
// 获取秒 getSeconds
var s = data.getSeconds()
console.log(date)
// 获取时间戳 Date.now 格林威治时间(1970年1月1日00点)
// 当前时间与格林威治时间相差的秒数
var now = Date.now()
console.log(now)
// 当秒小于10,数字前面加个0 展示结果:01 02 03
var day = data.getDay();
if (s<10){
sec = '0'+s
}
console.log(s)
</script>
3、函数
var box = document.getElementsByTagName('div')[0]
function 自定义函数名(){ 执行代码 }
box.onclick = func(); 函数调用可以在定义函数的上方或下方,调用可不加括号。
4、函数参数
1、如果是实参比形参多,那么就取前面的实参
function f1(x,y){
console.log(x+y)
}
f1(1,2,3,4,5) //输出3
2、如果实参的个数多于形参的个数,多余的形参会定义为undefined,最终的结果是NaN
function f2(x,y,z){
console.log(x+y+z)
}
f2(2,5) //输出NaN
var z
console.log(z) //输出undefined
5、函数返回值
返回值,函数只是实现某种功能,最终的结果需要返回给函数的调用者,需要return返回
function getResult(){
return 666
}
var a = getResult()
console.log(a)
6、函数案例
通过函数修改样式
<input type="button" value="改变样式" id="btn">
<div id="box">这是一个div</div>
<script>
var box = document.getElementById('box');
var btn = document.getElementById('btn');
function func(color_s,size_s){
box.style.color = color_s;
box.style.fontSize = size_s
}
btn.onclick = function (){
func('red','30px')
}
</script>
7、不定长参数
// arguments 里面存储了所有传递过来的实参 伪数组
// es5写法:
function sum(){ // arguments
console.log(arguments.length)
console.log(arguments.length[1])
}
sum(1,2,3,4,5,6,7)
8、函数作用域
全局作用域:定义在script标签中
局部作用域:定义在函数内部
// 如果在函数内部没有声明,直接定义的变量也是全局变量
var a = 20
function demo(){
a = 10
return a
}
var box = demo();
console.log(box); //10
console.log(a); //10
// 函数形参是全局还是局部?
var argu=10
console.log(argu)
function f2(argu){
return argu
}
var a = f2(argu)
console.log(a)
9、预解析
浏览器,js引擎 分为两步 预解析,执行代码 预解析,js引擎会把js里面所有的var,还有function提升到当前作用域最前面 执行代码 按照书写顺序从上往下 预解析分为 变量预解析(变量提升) 函数解析(函数提升) 变量提升,把所有的变量声明提升到当前作用域的最前面 不提升赋值操作 函数提升,把所有的函数声明放到作用域的最前面 不调用函数
// 1、 not defind
// console.log(num)
// 2. undefined
// console.log(num)
// var num = 10
// 2.相当于
// var num;
// console.log(num);
// num = 10;
// 3. 12
// fn()
// function fn(){
// console.log(12)
// }
// 4、 not a function
// func()
// var func = function (){
// console.log(25)
// }
// 4相当于
// var func;
// func();
// func = function (){
// console.log(25)
// }
10、对象
<script>
// 什么是对象 object,python的类 {} 创建类
// 对象有什么东西? 属性,方法
var obj = {
// 属性
name:"小奇",
age:"18",
addr:"长沙",
// 方法
Sayhi:function (){
console.log("我是小奇,我sayhi")
}
}
//两种调用属性的方法:
// 调用属性 对象.属性名
console.log(obj.name)
// 对象['属性名']
console.log(obj['age'])
// 调用方法 对象.方法名
obj.Sayhi()
</script>
11、newObject创建对象
<script>
var obj = new Object();
obj = function (name,age){
this.name = name;
this.age = age;
this.Sayhi = function (){
console.log("hi")
}
}
xiaoqi.name = "杨幂";
</script>
12、定时器
setTimeout(调用函数,[延迟毫秒数])
setTimeout()方法用于设置一个定时器,该定时器在定时器到期后执行调用函数。
setInterval(调用函数,[延迟毫秒数]):每隔这个延时时间,就去调用这个函数,重复调用
clearInterval/clearTimeout(定时器变量) 清除定时器 定义定时器的时候,一般要给一个名字,方便清空定时器
案例: