JavaScript笔记1

如何理解面向对象和函数式编程?

  var a = 3;<==>window.a = 3;/window["a"] = 3;/{a,"3"}

  1. 声明一个变量a 并赋值为3(意味着3 是一个整数数字),js自动识别数据类型,不用声明数据类型(java需要声明数据类型:int、byte、float、double等):从这里就体现了js是弱类型语言;  理解:为什么3.toString()不可以,而a.toString()就可以?
    如果没有声明数据类型,为什么返回的是number? --> 强制转换——Number(3)与 new Number(3)
  2. typeof a 返回a 的数据类型number:3的数据类型是number --> 3 是Number类型的字面量;
    这里涉及到数据类型:7种。  其中,6中基本数据类型,1中引用类型,包括:
    基本类型:  Number(数字类型)、String(字符串类型)、Boolean(布尔类型)、Symbol(符号类型)、Null(空)、Undefined(未定义)
    引用类型:  Object(对象类型)。    --> 对象是引用类型的数据
    Object类型又包括:Array(数组)、Function(函数)、Date(日期)、Math(数学)、RegExp(正则表达式)。它们是引用类型的对象。
    基本数据类型是伪对象
  3. window.a --> a 是全局对象window 的成员。对象可以通过构造函数、原型方式、new关键字等创建 --> 把全局对象window看作 由一个构造函数 创建的,a 就是这个构造函数的变量,作用域是这个构造函数的{ }。
    涉及到作用域:
    JavaScript只有函数有作用域,语句没有作用域。比如判断语句,循环语句等。在全局中创建的函数的作用域 继续创建函数(形成闭包)。这里结合全局window来理解闭包的属性和特点
  4. 语句特点:  m.n的形式。  对象的直观特点就是形如object.property 或 object.method() 的形式。包括后面学习到的字符串、数组等,这种形式几乎 无处不在。
    而函数调用/执行的方式是: functionName( ),与对象调用/执行某一种方法 表现相似,结合这一点理解
    js是面向对象的语言,没有类、基于原型(继承),注意与java的区别
  5. 构造函数 结合 原型继承 去理解JavaScript 的特点。函数几乎贯穿js 的整个结构
    对象: var obj = new Object() 或 var obj = {a:“A”,b:“B”,...}
    函数: var fun = new Function() 或 var fun = function () { }
    数组: var arr = new Array() 或  var arr = [ ];
    数字: var x = new Number(3) 或 x = Number(3);
    ......
    以上的特点:  关键字、语句、各自特有的表达式、以及共同的特点。结合起来理解

应用到HTML中时,由于全局变量可能造成全局污染,我能想到的是用函数封装。但又看到有人说千篇一律的函数,挺纠结的。

操作HTML DOM的API时,document.getElementById()只能操作ID选择器,document.querySelector()操作css选择器(方式更广),主要用哪个?学习时看到更多的是前一种方式,可是后一种明显更好用。
新手的路还长、加油-.-。

猜你喜欢

转载自www.cnblogs.com/xiaochangccy/p/8932466.html