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"}
- 声明一个变量a 并赋值为3(意味着3 是一个整数数字),js自动识别数据类型,不用声明数据类型(java需要声明数据类型:int、byte、float、double等):从这里就体现了js是弱类型语言; 理解:为什么3.toString()不可以,而a.toString()就可以?
如果没有声明数据类型,为什么返回的是number? --> 强制转换——Number(3)与 new Number(3) - typeof a 返回a 的数据类型number:3的数据类型是number --> 3 是Number类型的字面量;
这里涉及到数据类型:7种。 其中,6中基本数据类型,1中引用类型,包括:
基本类型: Number(数字类型)、String(字符串类型)、Boolean(布尔类型)、Symbol(符号类型)、Null(空)、Undefined(未定义)
引用类型: Object(对象类型)。 --> 对象是引用类型的数据
Object类型又包括:Array(数组)、Function(函数)、Date(日期)、Math(数学)、RegExp(正则表达式)。它们是引用类型的对象。
基本数据类型是伪对象 - window.a --> a 是全局对象window 的成员。对象可以通过构造函数、原型方式、new关键字等创建 --> 把全局对象window看作 由一个构造函数 创建的,a 就是这个构造函数的变量,作用域是这个构造函数的{ }。
涉及到作用域:
JavaScript只有函数有作用域,语句没有作用域。比如判断语句,循环语句等。在全局中创建的函数的作用域 继续创建函数(形成闭包)。这里结合全局window来理解闭包的属性和特点 - 语句特点: m.n的形式。 对象的直观特点就是形如object.property 或 object.method() 的形式。包括后面学习到的字符串、数组等,这种形式几乎 无处不在。
而函数调用/执行的方式是: functionName( ),与对象调用/执行某一种方法 表现相似,结合这一点理解
js是面向对象的语言,没有类、基于原型(继承),注意与java的区别 - 构造函数 结合 原型继承 去理解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选择器(方式更广),主要用哪个?学习时看到更多的是前一种方式,可是后一种明显更好用。
新手的路还长、加油-.-。
上一篇: js中this对象用法分析