程序员书籍笔记 程序员书籍笔记
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML
  • CSS
  • JavaScript
  • 前端知识
  • Vue
  • MarkDown
  • git
  • Node.js
  • Linux
  • 51单片机
  • 四级
  • 第一学期课程
  • 操作系统
  • 计算机网络
  • 数据结构
  • 计算机组成原理
  • HTML5
  • Electron
  • 日记便签
  • 前端导航
GitHub (opens new window)
  • HTML

  • CSS

  • JavaScript

    • es6

      • es6基础
      • es5的扩展
      • let和const命令
    • 基础
      • JS 基础
      • JS 组成
        • ECMAScript
        • DOM 文档对象模型
        • BOM 浏览器对象模型
      • 引入方式
        • async 和 defer
      • 基本输入输出
      • JS变量
      • 变量命名规则
      • JS 数据类型
        • 数字类型
        • 字符串类型
        • Boolean类型
        • undefined类型
        • null类型
        • typeof
        • 运算符
      • 类型转换
        • 转为字符串
        • 转为数字型
        • 转为布尔型
    • 运算符和数组
    • 函数
    • 对象和类型
    • 数据类型
    • js接口
    • DOM案例
    • 节点操作
    • BOM接口
    • 页面操作
    • 动画和轮播图
    • 本地存储
    • js面向对象
    • es6
    • ES6
    • js面向对象1
    • js面向对象2
    • js面向对象3
  • GO

  • 正则表达式

  • java

  • TypeScript

  • react

  • 前端知识

  • jQuery

  • Python

  • C和C++

  • 前端和后端
  • JavaScript
yuadh
2021-08-13
目录

基础

# JS 基础

是一种运行在客户端的脚本语言

渲染引擎 : 用来解析HTML与CSS , 俗称内核。blink ,webkit

JS引擎 : JS解释器,读取网页中的JS代码,对其处理后运行。 v8

脚本语言 ,逐行进行解释

# JS 组成

# ECMAScript

是由ECMA国际进行标准化的一门标准语言,这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript, 但实际上都是ECMAScript语言的实现和扩展

ECMAScript规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准

# DOM 文档对象模型

文档对象模型,是W3C组织推荐的处理可扩展标记语言的标准编程接口。

通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色)

# BOM 浏览器对象模型

浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行交互的对象结构。

通过BOM可以操作浏览器窗口,比如弹窗、控制浏览器跳转、获取分辨率等

# 引入方式

  • 内部样式
  • 内嵌JS
  • 外部引入
<script src="script.js" async></script>
1

“外部”示例中使用了 JavaScript 的一项现代技术(async “异步”属性)来解决这一问题,它告知浏览器在遇到 <script> 元素时不要中断后续 HTML 内容的加载。

# async 和 defer

async:

浏览器遇到 async 脚本时不会阻塞页面渲染,而是直接下载然后运行。这样脚本的运行次序就无法控制,只是脚本不会阻止剩余页面的显示。当页面的脚本之间彼此独立,且不依赖于本页面的其它任何脚本时,async 是最理想的选择。

<script async src="js/vendor/jquery.js"></script>

<script async src="js/script2.js"></script>

<script async src="js/script3.js"></script>
1
2
3
4
5

三者的调用顺序是不确定的。jquery.js 可能在 script2 和 script3 之前或之后调用,如果这样,后两个脚本中依赖 jquery 的函数将产生错误,因为脚本运行时 jquery 尚未加载。

解决这一问题可使用 defer 属性,脚本将按照在页面中出现的顺序加载和运行:

<script defer src="js/vendor/jquery.js"></script>

<script defer src="js/script2.js"></script>

<script defer src="js/script3.js"></script>
1
2
3
4
5

脚本调用策略小结:

  • 如果脚本无需等待页面解析,且无依赖独立运行,那么应使用 async。
  • 如果脚本需要等待页面解析,且依赖于其它脚本,调用这些脚本时应使用 defer,将关联的脚本按所需顺序置于 HTML 中。

# 基本输入输出

方法 说明 归属
alert(msg) 浏览器弹出警示框
console.log(msg) 浏览器控制台打印输出信息
prompt(info) 浏览器弹出输入框,用户可以输入

# JS变量

变量声明初始化

var age = 18;
var name = 'yuadh';
console.log(age);
1
2
3

var 是一个js关键字

输入输出

var name = prompt("enter your name");
console.log(name);
1
2

注意点

  • 多个变量声明和后端语言一样
  • 未声明变量 输出值 undefined (未定义)
  • 未声明的变量也可以使用,但是不推荐
  • 未声明,为赋值 会报错

# 变量命名规则

  • 由字母、数字、下划线、$ 符号组成 。开头不能用数字。
  • 严格区分大小写,不能使用关键字,驼峰命名法。

# JS 数据类型

JavaScript 是一种弱类型或者动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定

var x = 6;
x = "yuadh";
1
2
简单数据类型 说明 默认值
Number 数字型,包含 整型值和浮点型值 0
Boolean 布尔值类型,如true、false false
String 字符串类型 ""
Undefined 声明对象未赋值未定义 undefined
Null 空值 null

# 数字类型

赋值比较自由 可以是整数、浮点数

可以是八进制、十六进制

输出特殊值

  • Number.MAX_VALUE 最大值 console.log(Number.MAX_VALUE)
  • Number.MIN_VALUE 最小值 console.log(Number.MIN_VALUE)
  • Infinity 无穷大 console.log(Number.MAX_VALUE*2)
  • -infinity 无穷小 console.log(Number.MIN_VALUE)*2
  • NaN 非数字 console.log('yuadh'-100)

isNaN() 判断数字型函数 console.log(isNaN(1)) => false

# 字符串类型

使用单引号或双引号括起来的为字符串类型

JS可以使用单引号嵌套双引号,或者双引号嵌套单引号

var msg = "我是'yuadh'不是"

换行等使用转移字符 计算机通用

length属性

console.log("yuadh".length)

字符串拼接

字符串+任何类型=新字符串

# Boolean类型

true : 1

false :0

# undefined类型

未定义数据类型

undefined+11 => NaN

# null类型

null+"yuadh" => nullyuadh

# typeof

获取数据类型

var timer = null;
console.log(typeof timer); // object
1
2

可以测出promet获取的值类型为字符串

# 运算符

# 类型转换

# 转为字符串

方式 说明 案例
toString() 隐式转换 num.toString()
String() 强制转换 String(num)
加号拼接字符串 num+" "

# 转为数字型

方式 说明 案例
parseInt(String) 将String类型转换成整数数值型 parseInt("85")
parseFloat(String) 将String类型转换为浮点数数值型 parseFloat("48")
Number() Number('12')
- * / 隐式转换 '12'-0

parsexxx() 会将数字后面的非数字字符删除

# 转为布尔型

Boolean('true')

非零值都为 true

编辑 (opens new window)
上次更新: 2023/02/07, 14:51:48
let和const命令
运算符和数组

← let和const命令 运算符和数组→

Theme by Vdoing | Copyright © 2021-2023 yuadh
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×