前端知识点整理和梳理-(基础知识篇)

246 阅读3分钟

前端的基础知识

Javascript的基础知识

1.变量

说明:
1.第一个字符必须是字母、下划线(_)或美元符号($)
2.余下的字符可以是下划线、美元符号或任何字母或数字字符
3.ECMAScript另一个有趣的方面(也是与大多数程序设计语言的主要区别),是在使用变量之前不必声明    

var 作用域,只有函数级作用域和全局作用域:

函数级作用域:在函数内用var定义一个变量,则该变量为定义该变量的作用域中的局部变量,在函数退出以后销毁;
全局作用域: 省略 var ,则为全局变量,在函数外的任何地方都可被访问到
(不推荐,难维护,且在严格模式下会抛出错误);
这也是诟病已久的变量污染,在严格模式下回出错;

let const 的作用

  // var 的情况
  console.log(foo); // 输出undefined
  var foo = 2;

  // let 的情况
  console.log(bar); // 报错ReferenceError
  let bar = 2;
  上面代码中,变量foo用var命令声明,会发生变量提升,即脚本开始运行时,变量foo已经存在了
  ,但是没有值,所以会输出undefined。变量bar用let命令声明,不会发生变量提升。
  这表示在声明它之前,变量bar是不存在的,这时如果用到它,就会抛出一个错误。
var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。
这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。

为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。


   

2.数据类型

五种类型可以包含值的数据类型

字符串类型(string) 
布尔类型(boolean)
数字类型(number)
对象类型(object)
函数类型(function

三种对象类型

数组类型(array)
日期(date)
对象(Object)

两种空类型

null
undefined

注意:

NaN 的数据类型是数值;数组的数据类型是对象;日期的数据类型是对象
null 的数据类型是对象;未定义变量的数据类型是 undefined;尚未赋值的变量的数据类型也是 undefined。
还有一种说法就是:
众所周知,js中包含两种数据类型的值:基本数据类型和引用数据类型。
基本数据类型:nullundefinednumberstringboolean;引用数据类型:object

变量赋值

1.基本数据类型值在内存中占据固定大小的空间,因此被保存在栈内存中;
从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本;
    let a = 123;
    let b = a;
    b = 333;  
    console.log(a, b)// =>  a = 123; b = 333; 
    a 和 b 的值存在于内存中的两个地址,互不影响。
2.引用类型数据赋值: 从一个引用类型变量向另一个变量赋值时,
同上,但引用类型的值,实际上是一个指针,与初始变量指向同一个堆内存的对象。因此,这两个变量会互相影响。
  let a = {name: "linguomao"};
  let b = a;
  b.name = "new"; 
  b.city="cc"; 
  // =>  {name: "new", city: "cc"} {name: "new", city: "cc"} ab 的值存在于内存中的两个地址,
  但值是同一个指针,指向同一个内存中的对象,属性的改变会相互影响。

2.函数 & 原型 & 继承