JavaScript语言精髓与编程实战笔记01(第1-2章):数据的显式声明,赋值模板声明一批变量,转义,模板字面量,函数定义,表达式运算,匿名函数与箭头函数,三个点的展开语法,函数的三种调用,模块

1、数据的显式声明

let:块作用域变量,仅仅限于函数块级,不可以重复申明同一个变量
var:变量,全局或者函数块,在全局声明时会创建window对象属性,可以多次声明同一个变量
const:常量
三者存在作用域,值,可写性三方面的不同

值类型:
应用类型

2、使用赋值模板声明一批变量(ES6)

使用数组对数组的声明-赋值方式

var [a, b] = [1, 2];
console.log(a);
console.log(b);
var [x, y] = Array(
    {
    'name': 'zhangsan',
    'age': 13,
    'address': 'beijing'
    },
    {
        'name': 'lisi',
        'age': 15,
        'address':'hebei'
    }
)

console.log(x.name);
console.log(y.address);

又如:
使用数组解构赋值

var [x, y, ...more] = [1, 2, 5, 6, 7, 8, 9];
console.log(x);
console.log(y);
console.log(more);

在这里插入图片描述
对象解构2

var { x, y, ...more } = { x: 122, y: 133, z: 444 }
console.log(x);
console.log(y);
console.log(more);
3、转义

在这里插入图片描述

4、模板字面量

模板字面量使用` `反引号表示,并且使用${…}这种方式来使用变量

var str = "hello world";
console.log(`let's say ${str}`);
5、函数定义

不定量函数参数

function fun1(arg1,arg2,...more) {
    for (var i in arguments) { 
        console.log(arguments[i]);
    }
}
fun1("hello", "world",1,3,"!");

函数声明指定默认值

function fun1(arg1, arg2 = 100) {
    console.log(arg1 + " " + arg2);
}
fun1("hello", "world");
fun1("hello");

又如:

function fun1(arg1, ...[m,n=200,z]) {
    console.log(m+"  "+n);
}
fun1("hello", "world");
6、表达式运算

在这里插入图片描述

es6的基本表达式
数组字面量:[…]
对象字面量:{…}
函数字面量:一般匿名函数,箭头函数,类和生成器
表达式分组运算:(…)

7、解构赋值
<script>
    //把3,4分别赋值给a,b
    var [a,b]=[3,4];
    console.log(a);
    console.log(b);
    
    //对象风格的赋值
    var {x,y}={x:'xx',y:'yy'};
    console.log(x);
    console.log(y);

    //
    var obj={x:'xxx'}//对象赋值给obj
    console.log(obj);//打印一个对象
    A=[obj];//赋值一个对象数组
    console.log(A);//打印一个数组
    var[{x}]=A;//把一个对象数组赋值给另一个对象数组
    console.log({x});//打印对象数组的一个元素
    console.log(A[0]);//结果同上
    console.log({x}.x);//打印对象数组第一个元素的x键值
    console.log(A[0].x);//结果同上

    //成员深度遍历
    var {p1:{p2:xx}}={p1:{p2:'zhangsan'}};
    console.log(xx);//输出zhangsan

    //隐式取tostring
    var ac= {toString:x}=1;
    console.log(typeof(ac));
8、匿名函数与箭头函数
<script>
    var myfun=function () {
      console.log('普通匿名函数');
      
    }
    var myfun1=()=>{
      console.log('箭头函数也是匿名函数');
      
    }
    //()内为参数列表,如果只有一个参数可以省略括号
    var myfun2=parm=>{
      console.log('一个参数的箭头函数'+parm);
    }
    
    //一个参数,一行函数体的,可以省略小括号和大括号
    var myfun3=parm=> '一行函数体'+parm

    //一个参数,一行函数体的,可以省略小括号和大括号
    var myfun4=parm=>{ return '一行函数体,但如果包含return则需要使用大括号'+parm} 
    
    myfun();
    myfun1();
    myfun2('参数')
    myfun3('参数')
    console.log(myfun4('参数'));
     
    
  </script>
9、es6使用函数的形式来创建类及调用类对象
<script>
    function myfun(){
      name;
      console.log('this is myfun');
      
    }
    var myfun1=new myfun();
    console.log(typeof(myfun1));
    myfun1.name='zhangsan';
    console.log(myfun1.name);
    
    
    
  </script>
10、…三个点的展开语法
  <script>
    var foo=(x,y,z)=>x+Math.pow(y,z);
    console.log(foo(100,...[3,4]));//展开数组作为参数

    var arr=[100,33,55];
    console.log('2',3,4,...arr,44);//arr数组被展开打印

    var obj={name:'zhaangsan',age:19}
    console.log({message:'hello',...obj});//obj被展开,并被放入元素中
    var obj2={message:'world',...obj}
    console.log(obj2.message);
    console.log(obj2.name);
    console.log(obj2.age);
    
  </script>
11、匿名函数的三种调用方法
  <script>
    var myfun=function(){
      console.log('匿名函数的第1种调用方法');
   
    };
    myfun();

    (function(){
      console.log('匿名函数的第2种调用方法');
      
    })();
    
    (function(){
      console.log('匿名函数的第3种调用方法');
      
    }());

    void function(){
      console.log('匿名函数的第4种调用方法');
      
    }();
  </script>
12、break在标签化语句中跳出
<script>
    var i=110;
    console.log(i);

    mark:{
      console.log('mark begin');
      if(i>100){
        break mark;
      }
      else{
        console.log('i am in mark');
        
      }
      
    }
    console.log('i am out mark');
    
    
  </script>
13、声明模块
  • 1、默认名导出模块
export default ...
  • 2、具名导出变量
export let name1,name2=..,..,nameN
  • 3、具名导出函数声明或类声明
export function 函数名(){}

4、导出指定模块的名字(聚合多个模块的到出名)
export … from ‘模块’

14、导入模块
  • 1、简单装载
import ‘模块名’
  • 2、命名导入
imort 默认名 from 模块名
import { 导入列表名} from 模块名
  • 3、名字空间导入
import * as 空间别名 from 模块名
  • 4、默认导入的扩展形式
import 默认导入,... from “模块名”
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值