typeJavaScript笔记----字符串,参数,函数,表达式,循环

1、字符串新特性--双丿(撇)号声明字符串    、多行字符串        var myName = `fang                    my hao li                     jsk c sdf` //这样不会报错。    、字符串模板        console.log(`qsdaf ${myName}`)        console.log(`qsdaf ${myName()}`)//函数和变量能够直接写这里面${}        console.log(`<div>                <span>${myName}</span>                </div>`)//这样就能够很快的写出来,而不用加号链接;    、自动拆分符串        function test(a,b,c) {            console.log(a);            console.log(b);            console.log(c);        }        var myname = 'ni hao';        var getAge = function(){            return 18        }//下面的调用,a为一个数组['hello my name is',',im','']; b为'ni hao';c为18;也就是说这样会以变量为分隔        test`hello my name is ${myname},im ${getAge()}`;2、   参数新特性        一、   参数类型--在参数名称后面使用冒号来指定参数的类型                、any 能够任何类型                    var myname: any = 18;                、string 字符串类型                    var myname: string = "zhang san"                、number 数字类型                    var my: number = 20                、boolean 布尔类型                    var name: boolean =true                function test (name:string):string {                    return ""                }//意思为参数只能为字符串,函数返回值也只能是字符串;                、自定义类型                    class person {                        name:string;                        age: number;                    }                    var zhangsan :Person = new Person()                        zhangsan.name = "zhailiang";                        zhangsan.age = 18        二、 参数默认值--在参数声明后面用等号来指定参数的默认值                var my: string = "fang";                function test(a:string,b:string,c:string="wo"){                    console.log(a)                    console.log(b)                    console.log(c)                }                 test{'sfa','sss','asd'}//没有给默认值时必须给3个参数否则会报错;有默认值的参数能够不写(但必须写在最后面)        三、可选参数--在方法的参数声明后面用问号标明此参数为可选参数                function test(a:string,b?:string,c:string="wo"){                    console.log(a);                    console.log(b);//为b.length时会报错                    console.log(c);                }            test{'sfa'} //这样不会报错,b为undefined;还有一个注意的也像默认参数同样,可选参数一定要写在必写参数的后面3、函数新特性        一、Rest and Spread操做符(...)--用来声明任意量的方法参数            function func1(...args) {                    args.forEach(function(arg){                        console.log(arg);                    })            }            func1(1,2,3);func1(1,3,4,5,6)//正向用            function func2(a,b,c) {                console.log(a);                console.log(b);                console.log(c);            }            var args = [1,2],args1 = [5,6,7];            func1(...args);func1(...args1)//反向用        二、generater函数--控制函数的执行过程、手工暂停和恢复代码执行            function* doSomething(){                console.log("start");                yield;                console.log("finish")            }            var fun1 =doSomething();            func1.next();//会在yield的地方中止            func1.next();         三、destructuring析构表达式--经过表达式将对象或数组拆解成任意数量的变量            function getStock(){             return {                 code:"IBM",                 price: {                     price1:100,                     price2:200                 }             }            }            var {code:codex,price:{price2}} = getStock();            console.log(codex);            console.log(price2)//从对象中拆解            var array = [1,2,3,4];            var[number1,number2] = array;            console.log(number1)//1            console.log(number2)//2            var[,,,number1,number2] = array;            console.log(number1)//3            console.log(number2)//4            var[number1,number2,...others] = array;            console.log(number1)//1            console.log(number2)//2            console.log(others)//[3,4]4、表达式和循环        一、箭头表达式--用来声明匿名函数,消除传统匿名函数的this指针问题            var sun = (arg1,arg2) =>arg1+arg2//只有一行不用写大括号,也不用写return关键字            var sun =arg3 =>console.log(arg3)//只有一个参数时不用写小括号            var myArray = [1,2,3,4,5,6];            console.log(myArray.filter(value =>value%2 == 0))            function gerStock(name:string){                this.name = name;                setInterval(()=> {                    console.log("name is:" + this.name);                },1000)            }            var stock = new getStock("IBM")//能够看到打出来为“name is: IBM”,消除了传统匿名函数this指针问题,要是用ES5写就拿不到IBM        二、forEach() ,for in 和 for of            var myArray = [1,2,3,4];            myArray.desc = 'four number';            myArray.forEach(value=>console.log(value))//会忽略掉它的属性,而且不能够被打断            for (var n in myArray){                console.log(n)//打出的键值对的键和属性 0,1,2,3,desc                console.log(myArray[n])//打出的每个值            }            for (var n of  myArray) {                if(n>2) break;                console.log(n)            }//和forEach差很少只是能够被打断用break ;集合,数组均可以用,也能够用在字符串上,这时会把字符串的每个字符都打印出来
相关文章
相关标签/搜索