js一周学习小结

        这周开启了js的学习路程,因为有了之前c的基础,js学起来基本没有费多大力气,概念都很好理解,但两种语言对比下来总体感觉js很自由,在使用方面上真的很方便。

使用方面:

1.自由的变量类型

        c里面的变量整型就是整型,字符型就是字符型,一旦确定就无法改变了,但在js中变量在后续使用中是可以改变其数据类型

 此外,只要加上引号,数字也可以是字符型,下图的输出结果便是11。

2. 自由的变量定义

        在js中,你可以在for、if等常用函数中定义函数

         也可以在输出语句中写上输入语句

         让我觉得最神奇的还是可以在自定义函数中继续定义函数

 

3.自由的数组元素

        js中的数组元素可以任意类型的,这真是太神奇了:

 

 知识点:

1:伪数组arguments

        在c中函数是实参传递中如果实参数量大于形参会直接报错,但在js中不会,并且可以用arguments这个伪数组来查看传递的所有实参

     至于为什么叫它伪数组:

  1. 每一个函数中都内置好了arguments

  2. 不是真的意义上的数组,不能使用:pop( ) ; push( )等

  3. 具有数组length的属性

 2.预解析

       js引擎执行指令分两步:先是预解析,将所有的var 和 function提前到作用域最前面,相当于告诉浏览器这段代码总共有哪些代码;然后才是执行指令

 

<script>
        //先调用变量,再定义
        console.log(a);
        var a=1;
        //结果是undefind,因为预处理把var a;提前了,然后执行指令调用未赋值的a,是为赋值的变量


        //直接调用
        // console.log(b);
        //报错,,因为变量压根没定义


        //同第一个
        hanshu();
        function hanshu(){
            console.log(10);
        }
        hanshu();


        //
        // hanshu1();   这样会报错,因为预处理只是将函数声明提前,没有提前函数定义
        var hanshu1=function(){
            console.log(20);
        }
        hanshu1();      //这样就可以执行了


        var x=1;
        function shuchu(){
            console.log(x);
                //尽管外面已经对x进行了一次赋值,但这在函数里又进行了一次定义赋值,引擎进行了一次预处理但未赋值,所以第一个console是undefind
            var x=20;
            console.log(x);
        }
        shuchu();
    </script>

        这一周的话学习的就这么多了,最后附上整篇代码

<script>
                 /*字符串连接*/
        // var a,b,c;
        // a=1;b='1';
        // c=a+b;
        // console.log(c);

                /*输出套输入*/
        // var a;
        // alert(prompt(a));
        

                /*循环定义变量*/
        // for(var i=0,a=[];i<10;i++){
        //     a[i]=i;
        // }
        // console.log(a);
                /*判断定义循环*/
        // if(1<2){
        //     var b=1;
        //     console.log('b='+b);
        // }

                    /*自由的数组元素*/
        // var a=[1,'字符',true,null,undefined];
        // for(var i=0;i<a.length;i++)
        // {
        //     console.log(a[i]);
        // }

            /*arguments使用*/
        // function canshu(y1,y2){
        //     console.log(y1,y2);
        //     console.log(arguments);
        // }
        // canshu('x1','x2','x3')
    </script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值