JavaScript 复习笔记 1

JavaScript

  • JavaScript 是弱变量类型的语言,动态数据类型语言
  • JavaScript 运行在宿主环境中,不关心内存,垃圾回收。
  • Js 机械重复性的劳动几乎为 0,基本都是创造性的劳动。
  • 永远不要背程序,每一个程序都必须自己会写。
  • js 的运行必须有宿主环境,最最常见的宿主环境,就是浏览器。
  • JS 写在 < script > 标签对儿里面,type 属性就是类型,text/javascript 就是纯文本的 javascript;注意,这个 type 必须写准确,可以不写,但是要写,一定要写准确,否则失效。

1.alert() 语句

alert("你好啊!");

实际上这条语句,在运行一个内置函数,运行函数就要加圆括号。不要纠结这个东西,学习所有的程序,都是从模仿开始的。前期,不要去纠结语法的机理是什么,只需要进行模仿。你只需要知道,你模仿了,你就能实现效果。随着课程的深入,你将知道每条语句的确切机理。

2. 控制台

** 程序的所有未捕获的错误,都会在控制台中输出。** 控制台是调试程序的一个利器。

3. 行文特征

JavaScript 语句和语句之间的换行、空格、缩进都不敏感

语句后面的分号,不是必须写的,如果语句是一行一行写的,那么分号是没有必要的。但是压缩页面的时候,语句结尾的分号,非常重要。

我们把页面做好之后,通常都会进行压缩,用软件把所有的空格、换行都去掉。此时,语句末尾的分号显得非常重要,如果去掉分号,将不能执行。

4. 注释

给人看的东西,对读程序是一个提示作用。复习一下HTML的注释:

`<!--我是注释-->`

CSS 注释

`/*我是注释*/`

JavaScript 里面的注释

单行注释:

`<script type=``"text/javascript"``>``//我是一行注释``//再来一行``alert(``"你好"``);``</script>`

或者多行注释:

`/*``我是一行注释``再来一行``哈哈,我又写了一行``*/`

注释的符号,不能嵌套,错误的示范:

`/*``我是一行注释``/*``*/``再来一行``哈哈,我又写了一行``*/`

5. 字面量

数字字面量有整数字面量(十进制、16 进制、八进制),浮点数字面量(要记住 e),Infinity,NaN

字符串的字面量,必须用双引号、单引号包裹起来。字符串被限定在同种引号之间;也即,必须是成对单引号或成对双引号。

如果一个数字,用引号引起来,那么就是字符串了:

6. 变量

使用一个变量,必须先进行一个 var,才能使用。var 这个过程可以叫做声明 declaration,也可以叫做定义 definition。不写 var 定义的是一个全局变量。

如果一个变量,仅仅被 var 了,但是没有被赋初值呢,此时这个变量的值就是undefined; 如果这个变量没有被赋初值,那么这个变量就视为没有“定义完成”。值就是 undefined。

变量名不能以数字开头。

7. 变量声明的提升

Js 独有的一个特点,先给一个变量赋值在去定义变量。程序在执行前会看见这个程序中有一行定义变量,所以就会提升到程序开头去运行,这就叫做变量声明的提升。js 只能提升变量的声明,而不能提升变量的赋初值

8. 变量的基本类型

在 js 中有五种基本类型引用类型

五种基本类型分别是:number、string、undefined、boolean、null。

typeof关键字用来检测一个变量的类型。

  • number 类型

JS 中所有的数字都是 number 类型的,不在细分为整形 int、浮点型 float 这些乱七八糟的东西。

number 类型的东西:所有数字(不分正负、不分整浮、不分大小、不分进制)、Infinity、NaN。

  • string 类型

这个变量是什么类型,和赋的值有关系,而和定义的时候是没有关系的。定义的时候,都是用 var 关键字定义的。

我们说 js 这个语言叫做动态数据类型,原因就在这里,就是赋值的时候就决定这个变量的类型了。甚至可以改变这个变量的值,为其他类型的值。变量的类型是自动检测的,而不是人规定的。

  • 加号

加号两边都是数字的时候,那么就是数学加法;两边不都是数字的时候,那么就是连字符,结果是字符串。加号两边只要有一边是字符串,加号就为连字符

9. 变量类型的转换

先来学习一个语句,弹出一个输入框。

prompt("提示文本",”默认值“);

默认值可以省略。

可以把用户输入的值,存入变量:

var a = prompt("请输入你的电话","139");

用 prompt 接收的任何东西都是字符串,哪怕用户输入了一个数字,也是字符串的数字。

  • string->number

有一些方法可以将内存中表示一个数字的字符串转换为对应的数字

parseInt()和 parseFloat()。

**parseInt 就是将一个 string 转为一个整数,不四舍五入,直接截取整数部分。如果这个 string 有乱七八糟的东西,那么就截取前面数字部分。**parseInt() 不仅仅能够进行一个转为整数,更能进行一个进制的转换,把任何进制的数字,都换为 10 进制。parseInt 如果不能转,那么就返回 NaN。

parseFloat 就是将字符串转为浮点数

尽可能的将一个字符串转为浮点数,浮点数之后如果有乱七八糟的内容,直接舍弃。

也就是说,数字类型都是 number,不分整数和浮点数,但是转换的时候分。

  • number->string

将一个数字,与一个空字符串进行连字符运算,那么就是自动转为字符串了。

var a = 123;
var b = a + "";
console.log(b);
console.log(typeof b);