基础知识
小知识点
- JS中严格区分大小写
- JS每条语句用分号结束( ;)
- 如果不写分号,浏览器会自动添加,但是会消耗一些系统资源
- 而且有些时候,览器会加错分号,所以开发中分号必须写
- 运行规则:从上往下依次运行
- JS会自动忽略多个空格和换行,所以我们可以利用空格和换行对代码进行格式化
- 关键字
break | do | instanceof | typeof | case |
---|---|---|---|---|
else | now | var | catch | finally |
return | void | continue | for | switch |
while | default | if | throw | delete |
in | try | function | this | with |
debugger | false | true | null |
- 保留字符
class | enum | extends | super | const | export |
---|---|---|---|---|---|
import | implements | let | private | public | yield |
interface | package | protected | static |
- 数据类型指的就是字面量的类型
在JS中一共有六种数据类型- String字符串 基本数据类型
- Number数值 基本数据类型
- Boollean布尔值 基本数据类型
- null空值 基本数据类型
- Undefined未定义 基本数据类型
- object对象,引用数据类型
hello world
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
控制浏览器弹出一个警告框
alert("哥,你真帅啊!!");
*/
/*
让计算机在页面中输出一个内容
document.write()可以向body中输出一个内容
document.write("看我出不出来~~");
*/
/*
向控制台输出一个内容
console.log()的作用是向控制台输出一个内容
*/
alert("哥,你真帅啊!!");
document.write("看我出不出来~~");
console.log("你猜我在哪出来呢?");
</script>
</head>
<body>
</body>
</html>
注意:
JS编写位置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="JS编写位置(外部).js">
</script>
</head>
<body>
</body>
</html>
Script标签一旦用于引入外部文件了,就不能在编写代码了,即使编写了浏览器也会忽略
如果需要则可以在创建一个新的Script标签用于编写内部代码
注释
/*
多行注释和C语言一样
*/
// 单行注释
字面量和变量
-
字面量:都是一些不可改变的值(比如:12345)
- 字面量都是可以直接使用,但是我们一般都不会直接使用字面量
-
变量:变量可以用来保存字面量,而且变量的值是可以任意改变的;
- 变量更加方便我们使用,所以在开发中都是通过变量去保存一个字量,而很少使用字面量
- 通过变量名对字面量进行描述
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script>
//声明变量
//在js中使用Var关键字来声明一个变量
var a;
a=100;
console.log(a);
//声明并赋值
var b=210;
console.log(b);
</script>
</head>
<body>
</body>
</html>
标识符
-
在JS中所有的可以由我们自主命名的都可以称为是标识符
-
例如:变量名、函数名、属性名都属于标识符
-
命名一个标识符时需要遵守如下的规则
-
标识符中可以含有字母、数字、__、$ (其他的字符都不可以)
-
标识符不能以数字开头
-
标识符不能是ES中的关键字或保留字
-
标识符尽量采用驼峰命名法
-
转义字符
在字符串中我们可以使用 \ 作为转义字符,当表示一些特殊符号时可以使用 \ 进行转义
\' 表示 '
\" 表示 "
\n 换行
\t 制表符
\\ 表示\
检查文件类型
//可以使用一个运算符 typeof
//来检查一个变量的类型
//语法: typeof 变量
console. log(typeof a);
字符串
//输出字面量字符串str
alert("str")
//输出变量str
alert(str)
Number
- 在JS中所有的数值都是 Number类型,包括整数和浮点数(小数)
- 如果使用 Number表示的数字超过了最大值,则会返回ー个Infinity表示正无穷
- NaN是一个特殊的数字,表示 Not A Number
- 如果使用JS进行浮点运算,可能得到一个不精确的结果:所以千万不要使用JS进行对精确度要求比较高的运算
console.log(Number.MAX_VALUE); //输出能显示的最大数值
Null和 Undefined
-
Null(空值)类型的值只有一个,就是null
-
Null这个值专门用来表示一个为空的对象
-
使用typeof检查一个null值时,会返回object
-
Undefined(未定义)类型的值只有一个,就undefind
-
当声明一个变量,但是并不给变量赋值时,它的值就是undefined
-
使用typeof检查一个undefined时也会返回undefined
强制类型转换
转字符串
方式一:
- 调用被转换数据类型的tostring()方法
- 该方法不会影响到原变量,它会将转换的结果返回
方法二:
- 使用String();
- 使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用toString()方法
它会将null直接转换为"null"
将undefined直接转换为"undefined"
/*方法一:
调用a的tostring()方法
调用xxx的yyy()方法,就是xxx.yyy()
*/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var a=123;
/*var b=a.toString();
console.log(typeof a);//return number
console.log(typeof b);//return string
*/
a=String(a);//注意S要大写
</script>
</head>
<body>
</body>
</html>
转Number
方式一:
-
使用Number() 函数 N要大写
-
字符串一>数字
- 如果是纯数字的字符串,则直接将其转换为数字
- 如果字符串中有非数字的内容,则转换为NaN
- 如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
-
布尔一>数字
- true转成1
- fa1se转成0
-
Null 一>数字为0
-
Undefined一>数字为NaN
方式二:
- parseInt可以将一个字符串中的有效的整数内容去出来,然后转换为Number
- ParseFloat作用和parseInt类似,不同的是它可以获得有效的小数
- 如果对非String使用parseInt()或parseFloat()它会先将其转换为String,然后操作
其他进制的数字
-
表示16进制的数字,则需要以0X开头(x大写小写都可以)
-
表示8进制的数字,则需要以0开头
-
表示8进制的数字,则需要以0b开头(b大写小写都可以,不是所有浏览器都支持)
-
像a=“070”用parseInt后有的浏览器会解析成八进制,有的会输出70,这个时候使用parseInt(a,10)表示10进制解析字符串a
-
调用Boolean()函数将其他类型转为布尔值
- 数字返回除了0和NaN,其余都是true
- 字符串返回除了空字符串,其余都是true
-
null和undefined都是false
-
对象会转化为true
-
注意其输出结果是十进制形式
运算符
-
typeof他将该值的类型以字符串的形式返回(number、string、boolean、undefined、objected)
-
+、-、*、/、%(当对非number类型进行计算时,先转换为number再进行运算,true=1,false=0,null=0,任何值和NaN运算结果都为NaN,如果对两个字符串进行拼接并返回)
-
加法:任何数值和字符串进行基本运算,现将数值转换成字符串,然后进行拼接
-
其余的都是将,字符串变成数值再减(利用此性质可以让string-0变成number)
var a=123;
a=a+"";
console.log(typeof a);
console.log("a = "+a);//输出"a=123"
result = 1+2+"3" //输出“33”
result = "1"+2+3 //输出“123”
var a=100;
a=a-'2'
console.log(a); //输出98
-
对于非Number类型的值
- 它会将先转换为Number,然后再运算
- 可以对一个其他的数据类型使用+,来将其转换为number
- 它的原理和Number()函数一样
-
逻辑运算符
- 与 &&
- 或 ||
- 非 !
var a="hello";
a=!!a; //output true
//&& 有短路性质 当第一个为false时 后面的被短路
自增自减
a++; //这里和C语言一样
++a;