学习视频及笔记来源:
JavaScript基础语法-dom-bom-js-es6新语法-jQuery-数据可视化echarts黑马pink老师前端入门基础视频教程(500多集)持续_哔哩哔哩_bilibili
一、JS简介
1、HTML/CSS/JS的关系
2、JS的组成
2.1 ECMAScript
-
ECMAScript 是由ECMA 国际(原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript 或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。
-
ECMAScript: ECMAScript 规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
2.2 DOM — 文档对象模型
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。 通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)。
2.3 BOM — 浏览器对象模型
BOM (Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行 互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
二、JS基础
1、JavaScript 书写位置
1.1 行内式JS
<input type="button" value="点我试试" onclick="alert('Hello World')" />
- 可以将单行或少量 JS 代码写在HTML标签的事件属性中(以on开头的属性),如:onclick。
-
注意单双引号的使用:在 HTML 中我们推荐使用 双引号,JS 中我们推荐使用 单引号。
-
可读性差,特殊情况下使用。
1.2 内嵌式JS
<script>
alert('Hello World~!');
</script>
- 可以将多行JS代码写到 <script> 标签中。(类似于写CSS时候的<style>)
1.3 外部JS文件
<script src="my.js"></script>
- 适合于代码量较大的情况。利于HTML页面代码结构化,把大段 JS代码独立到 HTML 页面之外,既美观,也方便文件级别的复用。
- 在外部创建my.js的文件,引用外部 JS文件的 script 标签中间不可以写代码。
2、JavaScript 注释
- 单行注释:ctrl + /
- 多行注释:alt + shift + a
3、JavaScript 输入输出语句
三、变量
1、变量概述
(1)什么是变量?变量是用于存放数据的容器。
(2)变量的本质:变量是程序在内存中申请的一块用来存放数据的空间。
2、变量使用
2.1 基础语法
// 声明变量
var age;
// 给age这个变量赋值为10
age = 10;
// 变量的初始化(声明+赋值):声明变量同时赋值为18
var age = 18;
2.2 更新变量
var age = 18;
age = 81;
2.3 同时声明多个变量
// 同时声明多个变量时,只需要写一个 var, 多个变量名之间使用英文逗号隔开。
var age = 10, name = 'zs', sex = 2;
2.4 特殊情况
3、变量命名规范
-
由字母(A-Za-z)、数字(0-9)、下划线(_)、美元符号( $ )组成。
-
严格区分大小写。
- 不能以数字开头。
-
不能是关键字、保留字。例如:var、for、while。
-
变量名必须有意义。
-
遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。 myFirstName。
四、数据类型
1、变量的数据类型
- JavaScript 是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
- 在代码运行时,变量的数据类型是由 JS引擎 根据 = 右边变量值的数据类型来判断的,运行完毕之后,变量就确定了数据类型。
- JavaScript 拥有动态类型,同时也意味着相同的变量可用作不同的类型。
var x = 6; // x 此时为数字型
var x = "Bill"; // x 可以被重新赋值为字符串型
2、简单数据类型(Number,String,Boolean,Undefined,Null)
2.1 数字型 Number
数字型进制 | var num1 = 010; // 对应十进制的8 | 八进制前面加0,数字序列范围:0~7 |
var num = 0xA; // 对应十进制的10 | 十六进制前面加0x,数字序列范围:0~9以及A~F | |
数字型范围 | alert(Number.MAX_VALUE); | JS中数值的最大值:1.7976931348623157e+308 |
alert(Number.MIN_VALUE); | JS中数值的最小值:5e-324 | |
三个特殊值 | alert(Infinity); | Infinity代表无穷大,大于任何数值 |
alert(-Infinity); | -Infinity代表无穷小,小于任何数值 | |
alert(NaN); | NaN,Not a number,代表一个非数值 | |
isNaN() | isNaN(变量) | 判断变量是否为非数字的类型,返回true或者false |
2.2 字符串型 String
- 字符串型可以是引号中的任意文本,其语法为 双引号 " " 和 单引号' ',更推荐单引号。
2.2.1 字符串引号嵌套
-
JS 可以用 单引号嵌套双引号 ,或者用 双引号嵌套单引号 ( 外双内单,外单内双 )。
var strMsg = '我是"高帅富"程序猿'; // 可以用''包含""
var strMsg2 = "我是'高帅富'程序猿"; // 也可以用"" 包含''
2.2.2 字符串转义符
2.2.3 字符串长度
-
字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的 length 属性可以获取整个字符串的长度。
var strMsg = "我是帅气多金的程序猿!";
alert(strMsg.length); // 显示 11
2.2.4 字符串拼接
- 多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串。
-
拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串。
-
+ 号总结口诀:数值相加 ,字符相连。
//1.1 字符串 "相加"
alert('hello' + ' ' + 'world'); // hello world
//1.2 数值字符串 "相加"
alert('100' + '100'); // 100100
//1.3 数值字符串 + 数值
alert('11' + 12); // 1112
2.2.5 字符串+变量拼接
-
如果变量两侧都有字符串拼接,口诀“ 引引加加 ”,删掉数字,变量写加中间。
var age = 18;
console.log('您的年龄是' + age + '岁'); // 您的年龄是18岁。
2.3 布尔型 Boolean
- 布尔类型有两个值:true 和 false ,其中 true 表示真(对),而 false 表示假(错)。
- 布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。
console.log(true + 1); // 2
console.log(false + 1); // 1
2.4 Undefined 和 Null
- 有声明没赋值的变量会有一个默认值 undefined ( 进行相连或者相加时,注意结果)。
var variable; console.log(variable); // undefined console.log('你好' + variable); // 你好undefined console.log(11 + variable); // NaN - 此时并不确定variable的类型,因此返回非数值 console.log(true + variable); // NaN
一个声明变量给 null 值,里面存的值为空。var vari = null; console.log('你好' + vari); // 你好null console.log(11 + vari); // 11 console.log(true + vari); // 1
3、typeof 获取变量的数据类型
字面量:字面量是在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值。
数字字面量:8, 9, 10 字符串字面量:'黑马程序员', "大前端" 布尔字面量:true,false
4、数据类型转换
-
概念:把一种数据类型的变量转换成另外一种数据类型。
-
使用表单、prompt 获取过来的数据 默认是字符串类型 的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。
-
常用的三种转换:转换为字符串类型、转换为数字型、转换为布尔型。
4.1 转换为字符串类型
-
第三种加号拼接字符串转换方式也称之为 隐式转换 。
4.2 转换为数字型(重点)
4.3 转换为布尔型
-
代表 空 、 否定的值 会被转换为 false ,如 ''、0、NaN、null、undefined。
-
其余值都会转换为true。
5、数据类型作业
<script>
var yourName = prompt('请输入您的姓名:')
var age = prompt('请输入您的年龄:')
var sex = prompt('请输入您的性别:')
alert('您的姓名是:' + yourName + '\n您的年龄是:' + age + '\n您的性别是:' + sex)
</script>