2022-03-02——拒绝摆烂第一天(数字API&日期对象&定时器函数)

先写一下之前没记录的函数调用方式:

立即执行函数

立即执行函数:函数定义完,立即被调用,这种函数叫做立即执行函数,立即执行函数往往只会执行一次。

案例演示:

( function(){

alert("我是一个匿名函数");

} ) ();

关于构造函数中call方法

在昨天的构造函数中最后一步中有一个String.call(str),作用是初始化this对象,关于call()方法,这里备注一下:

1.可以调用函数

 function demo(x,y){

console.log("hello world")

}

可通过call()方法来调用 demo.call() 可以直接输出内容

2.(重点) 改变this指向

 var obj = { name: "dj" };

        function Fn(num1, num2) {

            console.log(num1 + num2);

            console.log(this);

            console.log(this.name);

        }

        Fn.call(obj, 100, 200);

        // Fn(1,2);

        // 非严格模式下

        Fn(100, 200);  // this->window num1=100 num2=200

        Fn.call(100, 200);  // this->100 num1=200 num2=undefined

        Fn.call(obj, 100, 200); // this->obj num1=100 num2=200

        Fn.call();  // this->window

        Fn.call(null);  // this->window

        Fn.call(undefined); // this->window


toString方法

String 返回 String 对象的值。

Number 返回 Number 的字符串表示。

Boolean 如果布尔值是true,则返回"true"。否则返回"false"。

Object (默认) 返回"[object ObjectName]",其中 ObjectName 是对象类型的名称。

Array 将 Array 的每个元素转换为字符串,并将它们依次连接起来,两个元素之间用英文逗号作为分隔符进行拼接。

Date 返回日期的文本表示。

Error 返回一个包含相关错误信息的字符串。

Function 返回如下格式的字符串,其中 functionname 是一个函数的名称

此函数的 toString 方法被调用: “function functionname() { [native code] }”

// 字符串

var str = "Hello";

console.log(str.toString());

// 数字

var num = 15.26540;

console.log(num.toString());

// 布尔

var bool = true;

console.log(bool.toString());

// Object

var obj = {name: "张三", age: 18};

console.log(obj.toString());

// 数组

var array = ["CodePlayer", true, 12, -5];

console.log(array.toString());

// 日期

var date = new Date(2013, 7, 18, 23, 11, 59, 230);

console.log(date.toString());

// 错误

var error = new Error("自定义错误信息");

console.log(error.toString());

// 函数

console.log(Function.toString());

okokok,开始记录数字的方法和日期方法

1. 获取数学对象的π(圆周率) 3.14

console.log(Math.PI);

可用于计算弧度

p.s.中小学数学题是真jb难。。。。

2. 向下取整 floor

console.log(Math.floor(0.1));// 0

console.log(Math.floor(-0.1));// -1

console.log(Math.floor(99.99));// 99

3. 向上取整 ceil

console.log(Math.ceil(0.1));// 1

console.log(Math.ceil(-0.1));// -0

console.log(Math.ceil(99.99));// 100

可用于封装动画时计算步长

4. 四舍五入取整 round

console.log(Math.round(0.1));// 0

console.log(Math.round(-0.1));// -1

console.log(Math.round(99.99));// 100

console.log(Math.round(1.4));// 1

console.log(Math.round(1.5));// 2

5. 随机数 random (重点)

console.log(Math.random()); // 0 ~ 1 之间随机小数

console.log(Math.random() * 10);// 0 ~ 10 之间随机数(含小数点)

指定范围的随机数

console.log(Math.random() * 10 + 5);// 5 ~ 10 之间随机数(含小数点)

console.log(Math.random() * (90 - 60) + 60);// 60 ~ 90 之间随机数(含小数点)

var num = Math.random() * (90 - 60) + 60;

console.log(Math.floor(num));// 60 ~ 90之间的随机整数

6. 多少次方 pow

console.log(Math.pow(2,2)); // 2 * 2 = 4

console.log(Math.pow(2,3)); // 2 * 2 * 2 = 8

console.log(Math.pow(5,2)); // 5 * 5 = 25

console.log(Math.pow(5,3)); // 5 * 5 * 5 = 125

7. 平方根

console.log(Math.sqrt(25)); // 5

console.log(Math.sqrt(81)); // 9

console.log(Math.sqrt(5)); // 2.23606797749979

数字方法比较少,但是运用起来是真的麻烦。。我需要练习!!!!!!


日期API

获取日期

然后是关于日期对象,日期对象更是easy,该类方法主要与定时器函数相搭配,先把日期方法统记一哈:

getDate()以数值返回天(1-31)

getDay()以数值获取周名(0-6)在 JavaScript 中,一周的第一天(0)表示“星期日”,即使世界上的一些国家认为周的第一天是“星期一”。

getFullYear()获取四位的年(yyyy)

getHours()获取小时(0-23)

getMilliseconds()获取毫秒(0-999)

getMinutes()获取分(0-59)

getMonth()获取月(0-11)在 JavaScript 中,第一个月(1 月)是月号 0,因此 12 月返回月号 11。

getSeconds()获取秒(0-59)

getTime()获取时间(从 1970 年 1 月 1 日至今)

设置日期

setDate()以数值(1-31)设置日

setFullYear()设置年(可选月和日)

setHours()设置小时(0-23)

setMilliseconds()设置毫秒(0-999)

setMinutes()设置分(0-59)

setMonth()设置月(0-11)

setSeconds()设置秒(0-59)

setTime()设置时间(从 1970 年 1 月 1 日至今的毫秒数)


定时器API函数

1. setInterval

调用者: window

参数: a.匿名函数  b.毫秒

返回值: 数字

功能:每隔一段时间执行一次匿名函

定时器函数

代码一、

var num = 0;

window.setInterval(function(){

    num ++;

    console.log("test",num)

},1000)

代码二、

var count = 0;

var autoPlay = function(){

    count ++;

    console.log("test",count)

}

setInterval(autoPlay,1000);

autoPlay();

代码三、

        var index = 0;

        // 定义变量记录定时器函数

        // var timer = null;

        // 记录当前的定时器函数

        var timer = setInterval(function(){

            index ++;

            // console.log("计数器变量:"+index);

            if(index > 5){

                // 2. 清除定时器函数(停止执行定时器函数)

                clearInterval(timer);

                // 终止代码(不执行后续代码)

                return ;

            }

            console.log("计数器变量:"+index);

        },300)

        // console.log(timer);// 1

2.clearInterval 清除定时器函数(停止执行定时器函数)


晚上20点57,关于我制作时钟时候疏忽的一个问题,就是new Date()赋予的值以及,getSeconds()等获得的值是不会及时更新的,这些值是只保存了静态的时间,所以在制作时钟,使用setInterval()刷新时间时候,需要将这里的值也输入进该函数中。



这里是制作时候随便写的,目前实现的功能会给我在页面刷出来无数个时钟。。

记录两个还没学的东西:innerHTML,getElementById有时间了看一下,感觉就能写出来了

3.3号补充定时器:

3.setTimeout 延迟函数

var d = window.setTimeout(

function(){

console.log("仅仅执行一次");

},1000)

调用者: window

参数:参数1,参数2

参数1是回调函数 ,参数2是毫秒数 ms

返回值:数字1, 用于记录当前的延迟函数

功能:在指定的时间,延迟执行回调函数

这东西用起来没setInterval舒服,而且要实现和后者一样的功能,需要用到递进,代码实现如下:

var index = 0;

        var loop = function(){

            var d = setTimeout(

                function(){

                    index ++;

                    console.log("反复执行:",index);

                    if(index >= 5){

                        clearTimeout(d);

                        return; }

                    loop();

                },100)

        }

loop();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容