欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript笔记1

程序员文章站 2022-05-03 09:29:41
如何理解面向对象和函数式编程? var a = 3;<==>window.a = 3;/window["a"] = 3;/{a,"3"} 应用到HTML中时,由于全局变量可能造成全局污染,我能想到的是用函数封装。但又看到有人说千篇一律的函数,挺纠结的。 操作HTML DOM的API时,documen ......

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

  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选择器(方式更广),主要用哪个?学习时看到更多的是前一种方式,可是后一种明显更好用。
新手的路还长、加油-.-。