1. JavaScript 是什么
- 世界上最流行的语言之一,是一种运行在客户端的脚本语言。
- 脚本语言:不需要编译,运行过程由js解析器(js 引擎)逐行进行解释并执行
- 也可以基于Node.js 技术进行服务端编程
2.网页三元素
- HTML:超文本标记语言-决定网页结构和内容
- CSS:修饰网页,决定网页呈现给用户的模样是否好看
- JavaScript: 实现业务逻辑和页面行为控制
3.浏览器执行JS简介
浏览器分成两部分:渲染引擎和JS 引擎
渲染引擎:用来解析HTML与CSS、俗称内核,比如chrome浏览器的blik, 老版本的webkit
js引擎:是js解释器,用来读取网页中的javaScript 代码,对js 待处理后运行,比如chrome 的V8
4.JS 组成
-
ECMAScript - 规定JS 编程的核心语法和基础知识、是所有浏览器厂商都遵守的一套JS语法标准
JavaScript(网景)、JScript(微软) 为ECMScript 的扩展和实现
-
DOM - 文档对象模型,W3C推荐处理可扩展标记语言的标准接口、通过DOM提供的接口可以对元素进行各种 颜色、大小设置
-
BOM - 浏览器对象模型、提供了独立内容的、可与浏览器窗口进行交互的对象结构
5.JS的引入
js 的引入分为3种方式, 行内样式
行内样式简单直接、少量JS代码直接写在HTML标签中,不适合做大量代码的函数逻辑
内联样式 可以将多行JS 代码写到script 标签中,在页面做了分离
外部JS文件 便于js 代码的复用、通常使用
1.变量
1.1 什么是变量
变量通常比喻成一个装东西的盒子、也就是存放数据的容器、我们通过变量名来获取数据甚至可以修改。
1.2 变量在内存中的存储
变量是程序在内存中申请的一块用来存放数据的空间。
1.3 声明变量
// 声明一个名称为age 的变量
var name
// 给变量赋值
name = '张三'
var 是一个JS关键字,用来什么变量。使用该关键字声明后,机算计会自动为变量分配内存空间、不需要程序员管理。 = 用来把右边的值赋值给左边变量的空间中,等号表示赋值
1.4 变量的初始化
var name = '张三'
声明一个变量并赋值、我们称为变量的初始化。一个变量被重新赋值后,它的原有的值就会被覆盖、变量的值将以最后一次赋的值为准。
js 支持同时声明多个变量
var name = 'zs',age = 30
声明变量,特殊情况
情况 | 说明 | 结果 |
---|---|---|
var age | 只声明不赋值 | undefined |
-- | 不声明 不赋值,使用 | 报错 |
age = 10 | 不声明只赋值 | 10 |
1.5变量的命名规范
规则:
- 由字母、数字、下划线_,美元符号$ 组成。 如 name 、age1
- 区号大小写,name 、Name 为两个不同的变量
- 不能以数字开头
- 不能以关键字、保留字开头。如 var、 for、 while
- 遵守驼峰命名法-首字母小写,后面单词的首字母需要大写。如 myFristName
2 数据类型
2.1 数据类型定义
在计算机中,不同的数据所需占用的存储空间不同,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,就定了不同的数据类型。js 数据类型如下:
- 简单数据类型 String 、Number、Boolean、Undefined 、Null
- 复杂数据类型 Object
2.2 声明变量的时候,为何我们不写类型?
变量的数据类型决定了如何将代表这些值的位,存储在计算机内存中。JavaScript 是一种弱类型或者说动态语言。这意味着不用提前声明变量类型,在程序运行过程中,这些类型被自动确定。
// x 为数字类型
var x = 6;
// x 为字符串类型
var x = 'zhangsan'
2.3 简单数据类型
简单数据类型 | 备注 | 默认值 |
---|---|---|
Number | 数字类型,包含整数、浮点 | 0 |
Boolean | 布尔值类型,true 、false | false |
String | 字符类型 | “” |
Undefined | var = a;声明变量未给值 | undefined |
Null | var a = null,声明变量给了空值 | null |
2.3.1 数值类型Number
数字类型的三个特殊值:
- Infinity: 代表无穷大、大于任何数值
- -Infinity: 代表无穷小、小于任何数值
- NaN: not a number, 代表一个非数值
判读是否为非数字类型:
isNaN(x)
// x 是数字类型,返回 false
// x 不是数字类型,返回 true
2.3.2 字符类型String
字符串类型可以是引号中的任意文本、单引号‘’,双引号“” 都可以
var str1 = "hello js"
var str2 = 'hello js'
说明:HTML 标签里面的属性使用的是双引号,JS 这里推荐使用单引号
字符嵌套:
JS 可以双引号嵌套单引号,也可以单引号嵌套双引号
转义字符:
转义符 | 说明 |
---|---|
\n | 换行 |
\\ | 斜杠 \ |
\' | ' 单引号 |
\" | " 双引号 |
\t | tab 缩进 |
\b | 空格 |
字符长度获取
var str = '1213ssd说得好'
console.log(str.length)
字符串拼接
- 字符串 + 任何类型 = 拼接后的字符串
拼接前会任何类型转成字符串类型, 再拼接成一个新类型
'abc' + 'xx' = 'abcxx'
'100' + '100' = '100100'
100 + 100 = 200
口诀: 数字相加、字符相连
字符串和变量相加:
var age = 10
var str = '我今年' + age + '岁'
3 Boolean 类型
Boolean 类型和数字相加的时候,true = 1, false = 0
true + 1 = 2 //2
false + 1 = 1 //1
Undefined 、Null
声明后没有被赋值的变量,有个默认值 undefined
赋值 为null ,表示存储的值为空
var name
'123' + name = '123undefined'
1 + name = NaN
true + name = NaN
var age = null
'123' + age = '123null'
1 + age = 1
true + age = 1