js基础学习(一)

 <script type="text/javascript">

        //用(function(){xxx})()是利用匿名函数和闭包用来执行xxx里面的代码,同时所有的定义比如变量的作用域都在闭包里,不会污染到外部命名空间。

        //1. 使这段代码被载入时候自动执行。

        //2. 避免污染全局变量。

        //所以如果想实现某个功能又不想污染全局变量的时候,会用这个自执行的匿名函数,常见于jquery插件

        

        (function () {

            /**

              * 基本数据类型(3种)

              * (1)数字 number

              *   例如 3.1415927 ,0.251,.2,100,1.478E

              * (2)字符串

              *   string

              * (3)布尔 booble

              */

            //数字型转字符串

            var num1 = 3.1415927;

            var str1 = Number.toString(num1);

            document.write(typeof str1 == "string");//true

            document.write("<br>");

            //四舍五入,保留两位有效数字 

            var num2 = num1.toFixed(2);

            document.write(num2);//3.14

            document.write("<br>");

            //返回指定的为数的数字

            var num3 = num1.toPrecision(4);

            document.write(num3);//3.142

            document.write("<br>");

            //(Math) 介绍一点方法

            //四舍五入round

            document.write(Math.round(4.7));//5

            document.write("<br>");

            //随机出处理0~1

            document.write(Math.random());

            document.write("<br>");

            //0~10的随机数

            document.write(Math.floor((Math.random() * 11)));

            document.write("<br>");



            //字符串

            //如何转成数字

            var str2 = "aaa";

            var str3 = "3.14";

            var number = Number(str3);

            document.write(typeof number == "number");//true

            document.write("<br>");

            document.write((str2 - 0) + "<br>");//NaN 非数值

            document.write((str3 - 1) + "<br>");//如果是减法他回自动将字符串转成数字2.14

            document.write((str3 + 1) + "<br>");//加法会当成字符串的拼接操作3.141





            //布尔类型(boolean)

            //true | false

            var s = "";

            var o = {};//true

            var l = [];//true

            var n = null;

            var f = false;

            var u = undefined;

            document.write("-------------------------------<br>");

            if (!s) {

                document.write("s is false<br>");

            }

            if (!o) {

                document.write("o is false<br>");

            }

            if (!l) {

                document.write("l is false<br>");

            }

            if (!n) {

                document.write("n is false<br>");

            }

            if (!f) {

                document.write("f is false<br>");

            }

            if (!u) {

                document.write("u is false<br>");

            }



            /**

            s is false

            f is false

            u is false

            n is false

             */

            //判断一个对象是否为""、null、undefined,直接使用

            //if (str) {

                

            //}

            //数组

            //扩展数组的方法

            Array.each = function(array,fn) {

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

                    fn(array[i]);

                }

            }



            var arr2 = [1, 2, 3, 45, 6, 7, 8];

            Array.each(arr2,function(item) {

                document.write(item+"<br/>");

            });



            //函数

            var str = "var show= function(){alert(100);}()";

            //eval 它是把一个字符串解析成一个方法并且调用

            eval(str);

            //数据库会返回一个字符串(长得像javaScrpit数组)

            var a = "[1,2]";

            var array = eval(a);

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

                alert(array[i]);

            }





            //函数声明的两种方式

            function aa() {

                

            }

            aa();//aa()上面和下面都可以调用

            var bb = function() {

                

            }

            bb();//必须在bb()下面调用







            //接收回调函数的函数

            function add(x, y, fn) {

                this.x = x || 1;//如果有值就为x,否则默认为1

                this.y = y || 1;

                if (fn) {

                    fn(this.x + this.y);

                }

            }



            add(1,2,function(v) {

                if (v > 0) {

                    alert("result>0");

                } else {

                    alert("result<=0");

                }

            });

        })();

    </script>
 <script type="text/javascript">

        (function() {

            /**

             * conf = {gridName:"",gridCode:"",gridSize:""}

             */

            function gridUtil(conf) {

                alert(conf["gridName"] + " " + conf["gridSize"]);

            }

            gridUtil({ gridName: "aaa", gridSize: 10 });



             /**

               * 证明 : 基础变量是传递数值的,相当于“值类型”

               * 自定义对象传参方式是传得"地址",相当于“引用类型”

               */



            //函数递归

            //常见的编程题1-100用递归算法完成累加

            function add(start, end) {

                var num = 0;

                num = num + start;

                if (start<end) {

                    num = num + add(start+1,end);

                }

                return num;

            }



            alert(add(1, 100));





            //函数使用技巧,代理函数:用程序来决定返回的新的函数(他是一个生产函数的函数)

            var person = { "jim": "m", "lili": "w" };

            var test = function(name) {

                if (person[name] == "m") {

                    return function(nk, wk) {

                        alert(nk + "  " + wk);

                    }

                } else if (person[name] == "w") {

                    return function(nk, wk, fk) {

                        alert(nk + "  " + wk + "   " + fk);

                    }

                }

                return null;

            }



            test("jim")("nk", "wk");

            test("lili")("nk", "wk","fk");

        })();

    </script>

 

你可能感兴趣的:(js)