丸子学JS(学习1小时 - 了解基础)

2023-11-20  本文已影响0人  丸子小姐__不懂爱

脚本引入

● 我们可以使用一个<script> 标签将 JavaScript 代码添加到页面中。
● type 和 language 属性不是必需的。
● 外部的脚本可以通过 <script src="path/to/script.js"></script> 这种方式插入。

命名

  1. 匈牙利命名法 (变量名 = 类型+对象描述)
  2. 驼峰命名法

声明

● 显示声明 (var 变量名=xxx)
● 陋习 (没有类型;重复声明;隐式声明;不声明直接赋值)
● 正解 (先声明,后读写; 先赋值,后运算)

变量类型

● 值类型
a. 占用空间固定,保存在栈中
b. 保存与复制的是值本身
c. 使用typeof检测数据的类型
d. 基本类型数据是值类型
● 引用类型
a. 占用空间不固定,保存在堆中
b. 保存与复制的是指向对象的一个指针
c. 使用instanceof检测数据的类型
d. 使用new()方法构造出的对象是引用型

作用域

● 全局变量
a. 包含 (在函数体外定义的变量; 在函数内部定义的无var的变量)
b. 调用 (任何位置)
● 局部变量
a. 包含 (在函数内部使用var声明的变量;函数的参数变量)
b. 调用 (当前函数体内部)
● 优先级
a. 局部变量高于同名全局变量;
b. 参数变量高于同名全局变量;
c. 局部变量高于同名参数变量;
● 特性
a. 忽略块级作用域
b. 全局变量是全局对象的属性
c. 局部变量是调用对象的属性
d. 作用域链 (内层函数可访问外层函数局部变量; 外层函数不能访问内层函数局部变量)
e. 生命周期
■ 全局变量 (除非被显示删除,否则一直存在)
■ 局部变量 (自声明起至函数运行完毕或被显示删除)
■ 回收机制 (标记清除;引用计数)

数据类型

undefined , null, boolean, string, number,object

运算符

(1)数学运算符

自增自减

● 功能相反
a. ++ 对唯一的运算数进行递增操作(每次加1)
b. -- 对唯一个运算数进行递减操作 (每次减1)
● 规则相同
a. 运算数必须是一个变量,数组的一个元素或者对象的属性
b. 如果运算数是非数值的则运算符会将它转成数值
● 符号位置决定预算结果
a. 运算数之前 (先进行递增或递减操作,再进行求值)
b. 运算数之后 (先求值,再进行递增(递减)操作)

关系运算符

等值关系检测

a. 相等比较
■ 操作符 (== 比较两个运算数的返回值是否相等;!= 比较两个运算数的返回值看是否不相等)
■ 类型转换
● 布尔值 (true :1 ; false:0;)
● 对象 (调用valueOf() 转换为基本类型)
● 字符串与数值的比较 (字符串转换为数值)
■ 比较原则
● null与undefined (相等; 比肩前不进行任何转换)
● NaN (与任何数值都不相等包括自身)
● 对象 (是否属于同一对象;是 == ; 否 !=;)
b. 相同比较
■ 运算符 (=== 比较两个运算数的返回值以及数据类型看是否相同;! 比较两个运算数的返回值以及数据类型看是否不同)
■ 比较原则
● 值类型间比较 (只有数据类型相同,且数值相等时才能够相等)
● 值类型与引用类型比较 (肯定不相同)
● 引用类型间比较 (比较的是它们的引用值(内存地址))

对象运算符

● in 判断左侧运算数是否为右侧运算数的成员
● instanceof 判断对象实例是否属于某个类或构造函数
● new 根据构造函数创建一个新的对象,并初始化该对象
● delete 删除指定对象的属性,数组元素或变量
● " . " 或者 " [] " 存取对象数组元素
● () 函数调用,改变运算运算符优先级

逻辑运算符

● !逻辑非
a. 返回值
ⅰ. true (空字符串; 0 ;null;NaN;undefined;)
ⅱ. false (对象;非空字符串;非0数值(Infinity))
b. 特性 (如果运算数的值为false则返回true,否则返回false; 连续使用两次!,可将任意类型转换为boolean类型)
● && 逻辑与
○ 规则
ⅰ. 第一个操作数是对象,则返回第二个操作数

2.  第二个操作数是对象,第一个操作数只为true,则返回该对象
3.  两个操作数都是对象,则返回第二个操作数
4.  第一个操作数是null,则返回null
5.  第一个操作数是NaN,则返回NaN
6.  第一个操作数是undefined,则返回undefined

特性 (当且仅当两个运算数的值都是true时,才返回true,否则返回false,短路操作,当一个操作数的值是false,则不再对第二个操作数进行求值)

● || 逻辑或
○ 规则
ⅰ. 第一个操作数是对象,则返回第一个操作数

2. 第一个操作数值为false,则返回第二个操作数
3. 两个操作数都是对象,则返回第一个操作数
4. 两个操作数都是null,则返回null
5. 两个操作数都是NaN,则返回NaN
6. 两个操作数都是undefined ,则返回undefined

特性 (当且仅当两个运算数的值都是false时,才返回false,否则返回true,如果第一个操作数值为true,则不会对第二个操作数进行求值)

上一篇 下一篇

猜你喜欢

热点阅读