浏览器分为渲染引擎和JS引擎两部分
<!-- 行内式的JS直接写到元素内部 --> <input type="button" value="点一下" onclick="alert('行内式')">
<head>
或<body>
标签中<!-- 写在`<head>`或`<body>`中的<script>标签内 --> <script>alert('内嵌式')</script>
<!-- 放置与外部文件中 --> <script src="test.js"></script>
//单行注释 ctrl + /
/* 多行行注释 shift + alt + a */
方法 | 说明 | 归属 |
---|---|---|
alert(msg) | 浏览器弹出警示框 | 浏览器 |
console.log(msg) | 浏览器控制台打印输出信息 | 浏览器 |
prompt(msg) | 浏览器弹出输入框,用户可输入 | 浏览器 |
JavaScript 变量是存储数据值的容器,通过变量获取数据。 JavaScript 变量必须以唯一的名称的标识。
$
和 _
开头,一般不这么做var
开发人员为变量、属性、函数、参数等取的名字,不能是关键字和保留字
在 JavaScript 中,一些标识符是保留关键字,不能用作变量名或函数名。
abstract | arguments | await* | boolean |
break | byte | case | catch |
char | class* | const | continue |
debugger | default | delete | do |
double | else | enum* | eval |
export* | extends* | false | final |
finally | float | for | function |
goto | if | implements | import* |
in | instanceof | int | interface |
let* | long | native | new |
null | package | private | protected |
public | return | short | static |
super* | switch | synchronized | this |
throw | throws | transient | true |
try | typeof | var | void |
volatile | while | with | yield |
Number、String、Boolean、Undefined、Null
与许多其他编程语言不同,JavaScript 不会定义不同类型的数,比如整数、短的、长的、浮点的等等。JavaScript 数值始终以双精度浮点数来存储,根据国际 IEEE 754 标准。此格式用 64 位存储数值。使用isNaN()
判断是否非数字,非数字返回true
值 | 指数 | 符号 |
---|---|---|
52bits | 11bits | 1bits |
0-52 | 52-62 | 63 |
/*精度*/ var a = 999999999999999; // x 将是 999999999999999 var b = 9999999999999999; // y 将是 10000000000000000 var c = 0.2 + 0.1; // x 将是 0.30000000000000004 /*特殊值*/ var d = Number.MAX_VALUE // 最大值:1.7976931348623157e+308 var e = Number.MIN_VALUE // 最小值:5e-32 var f = Infinity // 无穷大 var g = NaN // 非数字
二进制 | 八进制 | 十六进制 |
---|---|---|
0b | 0 | 0x |
JavaScript 字符串是引号中的零个或多个字符。可以使用''
或""
,推荐使用''
,因为HTML标签内的属性使用""
。
length
可返回字符串的长度var str = "ABCDEFG"; var strLength = str.length;
转义符 | 含义 |
---|---|
\n | 换行 |
\ | \ |
’ | ’ |
" | " |
\b | 退格 |
\r | 回车 |
\t | 水平制表符,tab 缩进 |
\v | 垂直制表符 |
\f | 换页 |
’ | ’ |
+
对字符串进行拼接var x = "123" + "456"; // x = "123456" var y = "123" + 456; // y = "123456" var z = "123" + true; // z = "123true"
布尔类型有两个值:true
和false
var x = true + 1; // x = 2 var y = false + 1; // y = 1
一个变量申明后未被赋值默认值为undefined
,声明变量可以给undefined
和null
值
var x = undefined + "123" // x = "undefined123" var y = undefined + 123 // x = NaN var z = null + "123" // z = "null123" var r = null + 123 // r = 123
typeof
方法返回数据类型,返回结构有以下几种
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof true // 返回 "boolean" typeof false // 返回 "boolean" typeof x // 返回 "undefined" (假如 x 没有值) typeof {name:'Bill', age:62} // 返回 "object" typeof [1,2,3,4] // 返回 "object" (数组即对象) typeof null // 返回 "object" typeof function myFunc(){} // 返回 "function"
转换方式 | 说明 |
---|---|
变量.toString() | 转换为字符串 |
String() | 强制转换为字符串 |
+ | 通过拼接转换为字符串,隐式转换 |
转换方式 | 说明 |
---|---|
parseInt(string) | 将string类转换为整数数值型 |
parseFloat(string) | 将string类转换为浮点数数值型 |
Number() | 强制转换为数值型 |
- * / | 通过算式运算转换,隐式转换 |
/*parseInt()*/ var num1=parseInt("num123"); //NaN var num2=parseInt(""); //NaN var num3=parseInt("123.45") //123 var num4=parseInt("101010",2) //42 var num5=parseInt("123num") //123 var num6=parseInt("0xff") //255 /*parseFloat(string)*/ var num1=parseFloat("1234blue"); //1234 var num2=parseFloat("0xA"); //0 var num3=parseFloat("0908.5"); //908.5 var num4=parseFloat("3.125e7"); //31250000 var num5=parseFloat("123.45.67") //123.45 var num6=parseFloat("") //NaN var num7=parseFloat("num123") //NaN /*Number()*/ var num1=Number("Hello World"); //NaN var num2=Number(""); //0 var num3=Number("000011"); //11 var num4=Number(true); //1 var num5=Number("num123") //NaN /*隐式转换*/ var num1 = '12' - 0 // 12 var num2 = '123' - '190' // 3 var num2 = '123' * '1' // 123
false | true |
---|---|
‘’、0、NaN、null、undefined | 其他所有值 |
object类型,在后面重点讲到
待续…