zoukankan      html  css  js  c++  java
  • typeJavaScript笔记----字符串,参数,函数,表达式,循环

    一、字符串新特性--双丿(撇)号声明字符串
    、多行字符串
    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()}`;
    二、 参数新特性
    1、 参数类型--在参数名称后面使用冒号来指定参数的类型
    、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
    2、 参数默认值--在参数声明后面用等号来指定参数的默认值
    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个参数不然会报错;有默认值的参数可以不写(但必须写在最后面)
    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;还有一个注意的也像默认参数一样,可选参数必定要写在必写参数的后面
    三、函数新特性
    1、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)//反向用
    2、generater函数--控制函数的执行过程、手工暂停和恢复代码执行
    function* doSomething(){
    console.log("start");
    yield;
    console.log("finish")
    }
    var fun1 =doSomething();
    func1.next();//会在yield的地方停止
    func1.next();
    3、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]
    四、表达式和循环
    1、箭头表达式--用来声明匿名函数,消除传统匿名函数的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
    2、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 ;集合,数组都可以用,也可以用在字符串上,这时会把字符串的每一个字符都打印出来
    “我相当乐意花一天的时间通过编程把一个任务实现自动化,除非这个任务手动只需要10秒钟就能完成”
  • 相关阅读:
    mysql 复合索引 为什么遵循最左原则
    php设计模式--门面模式
    php设计模式--装饰器模式
    php 设计模式 --组合器模式
    2020暑假训练日记
    2020省选联考翻车记
    题解 洛谷P6560 [SBCOI2020] 时光的流逝
    题解 洛谷P6562 [SBCOI2020] 归家之路
    题解 洛谷P6561 [SBCOI2020] 人
    题解 CF1372E Omkar and Last Floor
  • 原文地址:https://www.cnblogs.com/flxy-1028/p/6218952.html
Copyright © 2011-2022 走看看