美文网首页
丸子学JS(学习1小时 - 了解基础)

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

作者: 丸子小姐__不懂爱 | 来源:发表于2023-11-20 15:05 被阅读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. 运算符
    ■ < 如果A小于B,则返回值为true,否则返回值为false
    ■ <= 如果A小于等于B, 则返回值为true,否则返回值为false
    ■ " >= " 如果A大于等于B,则返回值为true,否则返回值为false
    ■ " > " 如果A大于B,则返回值为true,否则返回值为false
    b. 操作规则
    ■ 数值与数值的比较 (比较它们的代数值)
    ■ 仅一个运算数是数值 (将另一个运算数转换成数值,再比较)
    ■ 字符串间的比较 (逐字符比较它们的Unicode数值)
    ■ 字符串与非数值的比较 (将运算数转换成字符串并进行比较)
    ■ 运算数即非数字也非字符串 (转换为数值或字符串后进行比较)
    ■ 运算数无法被转换成数值或字符串 (直接返回false)
    ■ 与NaN的比较 (永远返回false)

等值关系检测

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,则不会对第二个操作数进行求值)

相关文章

  • 程序员进阶

    在我们学完基础之后要想深入学习必须得学会js基础等一系列操作,在我们学习同时要注意css、HTML、js的...

  • 学习纲要:BOM

    学习条件 了解 JS 的基础写法。 学习目标 知道什么是BOM。 了解如何获取当前浏览器的相关信息。 知道如何获取...

  • 学习纲要:与服务器端交互

    学习条件 了解 JS 的基础写法。 学习目标 对HTTP协议有简单了解。有哪些常见的请求头,响应头,状态码。 知道...

  • JS基础和WebAPIs的关联性

    学习ECMAscript标准规定的基本语法掌握JS基础语法只学习JS基础做不了网页交互效果学习JS基础语法是为了后...

  • React-Native 随笔

    学习基础: js的基础知识, rect.js基础 JSX语法基础 FlexBox布局 安装 安装node.js下载...

  • js基础了解

    js数组常用遍历方法使用: js数组常用操作方法使用: 基本逻辑运算: 基本字符串操作方法:

  • 零基础学前端 学习路线

    本文总结了从零基础到能做简单的页面需要学的内容。 目录 基础技能。包括学习方法,如何提问等。 学习。 了解前端 学...

  • web前端入门到实战:了解JavaScript的语法基础,值和变

    通过JavaScript语法基础学习了解到1.怎么使用js/通常js的引入和css一样,分为内部,外部和行内引入,...

  • 学习纲要:DOM

    学习条件 了解 JS 的基础写法。 学习目标 知道什么是DOM。 知道如何选择元素。 知道如何遍历元素。 知道如何...

  • Vue for Beginners to Building a

    本文我们将创建一个基础的 Vue.js,从而学会构建 Todo App 以有助于践学 Vue JS 。 学习框架的...

网友评论

      本文标题:丸子学JS(学习1小时 - 了解基础)

      本文链接:https://www.haomeiwen.com/subject/wgepwdtx.html