javascript入门5(0805)

1.函数的对象原型

        <script>

            // var fun = new Function();

            var obj = new Object();

            console.log(obj)


            // caller返回调用的函数,包括注释       

            function fun(){

                console.log('调用我的是'+fun.caller);

            }


            function demo(){

                // 调用fun函数

                fun()

            }


            demo();


            // 若在顶层调用,则返回null

            fun();//null

        </script>

2.函数中this的指向问题

        <script>

            /*

                在ECMAScript(ES5)中this的指代与其调用的位置有关


                常见的this的指代:

                    ***1、this作为普通函数调用时,this指代的是全局对象window(调用全局变量)

                    ***2、this作为普通对象调用,this指代当前对象(实例化的对象)

                    3、this作为构造函数调用,this指代的是实例化对象

                    4、this作为apply切换时调用,this指代的是apply切换后的对象


             */


            // 1、this作为普通函数调用时


            // 全局变量

            var name = '耿育淼';

            function fun1(){


                // 局部变量

                var name = '刘璟';

                console.log(name);//刘璟  全局变量和局部变量同时存在,优先使用局部变量


                console.log(this.name);


            }


            fun1();

            // 2 this作为普通对象调用,this指代当前对象

            var name = '孙浩';

            var obj = {

                name:'小明',

                age:22,

                say:function(){

                    console.log(obj == this);//true

                    console.log(obj === this);//true

                    // console.log(obj.name+'是小红的男朋友');//小明

                    console.log(this.name+'是小红的男朋友');//小明

                }

            }


            obj.say();


            // 示例:

            // 获取所有的this

            var oLi = document.getElementsByTagName('li');

            console.log(oLi);


            // 循环绑定事件

            for(var i=0;i<oLi.length;i++){

                oLi[i].onclick = function(){

                    // console.log('111')

                    console.log(i);

                    console.log(this)

                    this.style.background = 'green';

                }

            }


            // 3、this作为构造函数调用

            // 自定义构造函数

            function demo(){

                this.name = '小李子';

                this.age = 18;

                this.say = function(){

                    console.log('正是李子成熟季');

                }

            }


            var obj1 = new demo();

            console.log(obj1);

            console.log(obj1.name);//小李子



            //

            var obj2 = {

                name:'向同学',

                age:20,

                love:function(){

                    console.log(this.name+'喜欢的是...');

                }

            }


            // obj2.love();//向同学

            obj2.love.apply(obj1);//小李子

            obj2.love.apply();//孙浩  若apply()未传入参数,则代表全局变量

        </script>

3.数组方法

        <script>

            /*

                函数的三要素:

                    功能

                    参数

                    返回值

             */

            // concat()数组连接  不改变原数组

            var arr = [1,2,3,4,5];

            var newArr = arr.concat('龚瑞');


            console.log(newArr);//[1, 2, 3, 4, 5, "龚瑞"]

            console.log(arr);//[1, 2, 3, 4, 5]


            var arr = [1,2,3,4,5];

            // 多个参数之间采用逗号连接

            var newArr = arr.concat('龚瑞','成哥');

            console.log(newArr);// [1, 2, 3, 4, 5, "龚瑞", "成哥"]


            var arr = [1,2,3];

            var arr1 = [4,5,6];

            var newArr = arr.concat(arr1);

            console.log(newArr);//[1, 2, 3, 4, 5, 6]


            // join()将数组按照指定的字符拼接为字符串(默认按照逗号连接)

            var arr = ['周','三','就','是','情','人','节'];

            var newStr = arr.join();//周,三,就,是,情,人,节

            var newStr = arr.join('');//周三就是情人节

            console.log(newStr);


            /*

                出栈入栈  直接改变原数组

                    push()从数组的尾部压入一个元素

                    pop()从数组的尾部弹出一个元素,并接收返回的元素


                    unshift()从数组的头部压入一个元素

                    shift()从数组的头部弹出一个元素,并接收返回的元素


             */

            // push()从数组的尾部压入一个元素

            var arr = [1,2,3,4,5];

            arr.push('向同学');

            console.log(arr);// [1, 2, 3, 4, 5, "向同学"]


            // 若压入的是数组,最终只占一个下标

            var arr1 = ['黄满鑫','陈冬梅','耿育淼'];

            arr.push(arr1);

            console.log(arr);//[1, 2, 3, 4, 5, "向同学", Array(3)]


            // pop()从数组的尾部弹出一个元素,并接收返回的元素

            var res = arr.pop();

            console.log(res);//返回弹出的元素   ["黄满鑫", "陈冬梅", "耿育淼"]

            console.log(arr);


            // unshift()从数组的头部压入一个元素

            arr.unshift('a');

            console.log(arr);


            // shift()从数组的头部弹出一个元素

            var res = arr.shift();

            console.log(arr);

            console.log(res);

        </script>

4.数组的截取

        <script>

            /*

                slice(start,end)数组的截取

                    一个参数:从指定下标开始截取,截取到最后

                    两个参数:从指定的下标开始截取,截取到指定下标之前


             */


            // 一个参数:从指定下标开始截取,截取到最后

            var arr = [1,2,3,4,5];

            var newArr = arr.slice(2);

            console.log(newArr);//[3, 4, 5]


            // 两个参数:从指定的下标开始截取,截取到指定下标之前

            var arr = [1,2,3,4,5];

            var newArr = arr.slice(1,3);

            console.log(newArr);//[2, 3]


            var arr = [1,2,3,4,5];

            // 负数代表倒数第几个

            var newArr = arr.slice(-2);

            console.log(newArr);// [4, 5]


            var arr = [1,2,3,4,5];

            // 负数代表倒数第几个

            var newArr = arr.slice(1,-1);

            console.log(newArr);//[2, 3, 4]


            var arr = [1,2,3,4,5];

            // 负数代表倒数第几个

            var newArr = arr.slice(-3,-1);

            console.log(newArr);//[3, 4]



            // 数组只能从左往右截取

            var arr = [1,2,3,4,5];

            // 负数代表倒数第几个

            var newArr = arr.slice(-1,1);

            console.log(newArr);//[]

        </script>

5.数组反转和排序

        <script>

            // reverse()数组的反转

            var arr = [1,2,3,4,5];

            arr.reverse();

            console.log(arr);//[5, 4, 3, 2, 1]


            // sort()数组按照ASCII码码值排序  底层为冒泡排序 

            var arr = [4,7,2,9,0,8];

            arr.sort();

            console.log(arr);//[0, 2, 4, 7, 8, 9]


            var arr = [4,7,20,23,9,5,230,8];

            arr.sort();

            console.log(arr);//[20, 23, 230, 4, 5, 7, 8, 9]


            /*

                数字:48~57

                大写字母:65~90

                小写字母:97~122


             */

            var arr = ['a','A',4,7,2,9,0,8];

            arr.sort();

            console.log(arr);//[0, 2, 4, 7, 8, 9, "A", "a"]

        </script>

6.数学函数

        <script>

            /*

                abs()绝对值  max()最大值  min()最小值  floor()向下取整  ceil()向上取整 round()四舍五入  pow()次方根    sqrt()开平方根  random()随机数

             */

            console.log(Math);


            // abs()绝对值

            var num = 10;//10

            var num = -10;//10

            var res = Math.abs(num);

            console.log(res)


            // 最大值

            var res = Math.max(5,8,2,9,0);

            console.log(res);



            // 最小值

            var res = Math.min(5,8,2,9,0);

            console.log(res);


            // floor()向下取整

            var num = 9.9;

            var res = Math.floor(num);

            console.log(res);//9  只保留整数位


            // 向上取整

            var num = 9.0001;

            var res = Math.ceil(num);

            console.log(res);//10  进一法取整


            // round()四舍五入

            var num = 9.0001;

            var num = 9.6;//10

            var res = Math.round(num);

            console.log(res);//10  进一法取整


            // pow(底数,指数)次方根

            var res = Math.pow(2,10);

            console.log(res);


            // sqrt()开平方根

            var res = Math.sqrt(16);//4

            console.log(res);


            // random()随机数  自动产生0~1的随机数,但是不包含1

            console.log(Math.random());


            // 生成0-9的随机数

            var num = Math.floor(Math.random()*10);

            console.log(num);


            // 生成0~255的随机数

            var num = Math.floor(Math.random()*256);

            console.log(num);


            // 拓展  四舍五入保留指定的小数位

            var num = 36.6666;

            var res = num.toFixed(2);

            console.log(res);

        </script>

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

推荐阅读更多精彩内容

  • 1.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序 //要是获取不重复的,则对随机数...
    persistlu阅读 5,578评论 0 0
  • 简述JavaScript起源起源于美国的Netscape公司,原名为LiveScript,后改为JavaScrip...
    3ab670b99521阅读 3,001评论 0 0
  • JavaScript 1. type 类型判断 isString (o) {//是否字符串 returnObjec...
    Mr_ZhangH阅读 631评论 0 1
  • 树欲静而风不止,有时候也许是根原本不正不深吧。
    补风阅读 112评论 0 0
  • 作业提交情况 作业:应交7人,实交7人;点评:应交7人,实交7人,未交1人;点评未交:李正主(已发红包) 小组最佳...
    今古醉仙人阅读 127评论 0 0