博客列表 >Javascript-基础知识与函数练习-2019年10月21日

Javascript-基础知识与函数练习-2019年10月21日

Victor的博客
Victor的博客原创
2019年10月22日 15:50:46944浏览

Javascript基础语句和函数的练习

实例
<script>
        var thisis = 'javascript';
        /*
        变量的声明和赋值,建议遵循先声明后使用的原则;
        变量声明应集中、置顶首字母必须为字母、下划线或$,不可以使用关键字和保留字,
        变量长度不限,但区分大小写。
        声明变量使用var let关键字,不使用关键字限定的变量默认是全局变量
  */

        var a; //声明变量,没有初始化之前,变量的初始值为undefined
        var b, c;
        var m = 1;
        let n = 1,
            d = 2;
        let e = g = 3;

        /*
        表达式是可以运算,且必须返回一个确定值的式子,一般由常量、变量、运算符、子表达式构成
        运算符:比如 +、—、*、/、=、|、delete、void等
        一元运算符:++i、i--等;
        二元运算符:结合两个操作数构成表达式,大部分运算符属于二元运算符:c = a+b;
        三元运算符:结合三个操作数形成表达式,比如:condition ? a : b;
        逗号运算符:依次计算两个操作数,并返回第二个操作数的值
        void运算符:指定要计算一个表达式,比如: javascript:void(expression)
        
        */
        var a = [];
        for (var i = 0, j = 10; i <= 10; i++, j--) {
            a[i, j] = i + j;
            document.writeln("a[" + i + "," + j + "]=" + a[i, j]);
        }

        /*
        函数的定义:
        1、使用function语句声明函数;
        2、通过Function对象来构造函数
        函数的返回值没有类型限制,可以是任意类型的值
        */

        // 命名函数
        function f(name, say) {
            document.write('<h1>' + name + ': ' + say + '</h1>');
        }
        //调用函数
        f('西门老师', 'Hello!');

        //匿名函数
        var f = function(name, say) {
                document.write('<h1>' + name + ': ' + say + '</h1>');
            }
            //调用函数
        f('西门老师', 'Hello!');

        //通过构造函数定义一个自定义函数
        var f = new Function("name", "say", "document.write('<h1>' + name + ': ' + say + '</h1>');");
        //调用函数
        f('西门老师', 'Hello!');


        /*
        JS中的输出,可以使用:
        1、alert();     阻塞进程的方式;
        2、console;     不阻塞进程;
        
        */

        alert("alert阻塞进程,你必须点击确定方可执行后面的操作");
        console.log("写到控制台中,不阻塞进程");

        var out = 25,
            inner = {
                out: 20,
                func: function() {
                    var out = 30;
                    return this.out;
                }
            }

        console.log((inner.func, inner.func)());
        console.log(inner.func());
        console.log((inner.func)());
        console.log((inner.func = inner.func)());

        var i = 0,
            j = 3,
            k = 5;
        console.log((i++, j++, k));
        console.log(i);
        console.log(j);
        console.log(k);


        function value() {
            return 1;
        }
        var value;
        alert(typeof value);

        function value(x) {
            return x + 1;
        }
        var value;
        alert(value);

        var baz = 3;
        var bazz = {
            baz: 2,
            getbaz: function() {
                return this.baz;
            }
        }
        console.log(bazz.getbaz());
        var g = bazz.getbaz;
        console.log(g());

        var arr = [1, 2, 3, 4, 5];
        for (var i = 0; i < arr.length; i++) {
            arr[i] = function() {
                alert(i);
            }
        }
        arr[3]();

        /*
        未定义的值 和 定义了,但未赋值的 它们的默认类型都为 undefined;
        尚未存在的对象,用null来表示,表示没有对象:该处不该有值,可以用作函数的参数,可以作为对象原型链的终点。
        NaN是一种特殊的number

        prototype 是函数对象上预设的对象属性;
        this是JS的关键字,是函数运行时,自动生成的内部对象,只能在函数内部使用。指向调用函数的那个对象,谁调用,指向谁;
        
        */

        // 比较以下两个函数的输出情况:
        var x = 1;

        function test() {
            alert(this.x);
        }
        test(); //  1

        var z = 1;

        function ttest() {
            this.z = 0;
        }
        ttest();
        alert(z); //  0

        /*
        JS的特别之处是:函数内部可以直接访问外部的全局变量,而外部却不能访问函数内的局部变量
        闭包:简单理解就是,可以读取其他函数内部变量的函数,它将函数内部和外部连接起来一座桥梁。
        闭包的用途:
        1、读取函数内部的变量;
        2、让这些变量始终保持在内存中
        使用闭包的注意事项:
        1、闭包会使函数中变量常驻内存,滥用闭包会造成内存泄露,导致网页性能问题。所以,退出函数前,将不使用的局部变量全部释放是个解决办法;
        2、闭包会改变父函数内部变量的值,当把闭包当做父函数的公用方法时一定要小心,不要随便改变父函数内部变量的值。

        数组和对象的typeof都是 object,如何区分?
        1、数组有length,而对象没有,所以,可以判断 typeof o.length == 'number'是否成立;
        2、如果使用instanceof判断数据类型,一定要先判断数组,最后判断object,不然可能得到不准确的结果。

        */
    </script>
运行实例 »
点击 "运行实例" 按钮查看在线实例



声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议