javascript的基础

前言

接触前端快三年了,许多的前端概念都只是模模糊糊的,说不清楚。一直以来,都想要整理,梳理一下这些概念,可是工作有点忙,加上自己又不是那么自律的人,所以一直拖着。难得今天有空,本着昨日事,今日也可毕的精神,写上那么点,以后再慢慢补全。

基础概念

  • Javascript的数据类型

javascript的数据类型有String(字符串)、 Undefined 、 Null 、Boolean(布尔值) 、Number(数字) 、 Object(对象),ES6新增了Symbol(表示独一无二)。


  • 内置对象

除了原始数据类型外,javascript还内置了许多的对象,常用的主要有: Array(数组)、Date(时间)、Error(错误)、Function(函数)、NaN(not a number)、Math、RegExp(正则表达式),ES6的Promise、Proxy。


  • 变量

1.变量声明:

var[let,[const]] varname [= value];

2.局部变量和全局变量
局部变量声明在函数内部,全局变量声明在函数外,可以有:

    var varname =value;
      varname =value;
      window.varname = value;

局部变量的作用域在当前执行上下文当中,全局变量的作用域是全局的:

var x = 0;
function fun(){
   var x = 10;
   y = 1;
}

fun();
console.log(x)//0
console.log(y)//1

用var声明的变量是不可配置属性,而省略var声明的变量是可配置属性的(例如删除)

var a = 0;
b = 1;
...
delete this.a

3.变量声明提升
由于变量的声明总是在任意代码执行前处理,因此在代码中的任意位置声明变量总是等效于在代码开头声明。这意味着所有变量的声明都会移动到函数或者全局代码的开头位置,变量可以在声明之前使用。

      md = 'markdown';
      var md;

等同

var md;
md = 'markdown';

建议在作用域的最开始(函数或者全局代码的开头)声明变量,这样可以使变量的作用域变得清晰。

4.多个变量的初始化

var a = 'A';
var b = a;

等效于:

var a,b = a = 'A';

5.隐式全局变量和外部函数作用域

var a = b,b = 4;
a+b;//NaN

其实a为局部变量,b为全局变量,等同于:

var a;
a=b;
b=4;
  • Object对象
    1.语法:
    使用构造函数:
new Object([value]);

使用字面量:key-value键值对

{[key1:value1,[key2:value2,...[keyn:valuen]]]}

2.属性
Object.length
值为1
Object.prototype
为Object添加属性和方法
3.方法
Object.assign(target, …sources)
类似jQuery的extend方法:

var o = {a:1},b = {c:2},j={a:'2'};
var obj = Object.assign(o,b,j);
console.log(obj);//{a: "2", c: 2}

Object.create(proto,[])

var ss = new Object({a:3})
var o = Object.create(ss, {
  // foo会成为所创建对象的数据属性
  foo: { 
    writable:true,
    configurable:true,
    value: "hello" 
  },
  // bar会成为所创建对象的访问器属性
  bar: {
    configurable: false,
    get: function() { return 10 },
    set: function(value) {
      console.log("Setting `o.bar` to", value);
    }
  }
});
o.a//3
o.foo//hello
o.bar//10

4.Object.keys(obj)

var ary = [1,2,3,5];
Object.keys(ary);//["0", "1", "2", "3"]

var obj = {a:1,b:2,c:3};
Object.keys(obj)//['a','b','c']

5.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值