【一】JavaScript介绍
【1】什么是js
【2】什么是node.js
- 前端由于非常受制于后端,所以有一些人异想天开想要通过js来编写后端代码一统江湖
- 由此开发了一个叫nodejs的工具(支持js跑在后端服务器上)
- 但是并不能完美的实现
【3】JavaScript和JAVA的关系
- JavaScript和Java一毛钱关系都没有,纯粹是为了蹭Java的热度
【4】JS是不完善的语言
- JS最初由一个程序员花了七天时间开发的 里面存在很多bug
- 为了解决这些bug一直在编写相应的补丁
- 补丁本身又有bug
- 最后导致了js中有很多不符合逻辑的地方(成了大家墨守成规的东西)
【5】JavaScript与ECMAScript的关系
(1)历史
- 1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。
- 次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。
(2)ECMAScript为什么不叫JavaScript
- 该标准(ECMAScript)从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 JavaScript,有两个原因。
- 一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。
- 二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。
(3)总结
- ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 JScript 和 ActionScript)。
- 日常场合,这两个词是可以互换的。
【二】JavaScript初识
【1】注释语法
单行注释
// + 空格 + 内容
多行注释
/*
....
*/
【2】JS代码书写位置
(1)script标签内部直接书写
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>// 可以在这里写JS代码</script>
</head>
<body>
</body>
<script>
<!-- 可以在这里写JS代码 -->
</script>
</html>
(2)script标签 src 属性引入外部js代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>// 可以在这里写JS代码</script>
</head>
<body>
</body>
<script>
<!-- 可以在这里写JS代码 -->
</script>
</html>
【3】语法规范
- js是以分号作为语句的结束
- 但是如果不写分号,问题不大,能正常运行,但是是相当于没有结束符
【4】学习内容
在哪里可以写js代码
【1】创建一个HTML文档 打开文档 打开控制台在控制台写 --- 建议学习的时候用这个
【2】本地写一个js文件引入js文件
js代码学习内容:
变量
数据类型
流程控制
函数
对象
内置方法
【三】变量和常量
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>【一】在 js 语言中变量的声明 </h1>
<p>
变量名全部用双引号
【1】var 变量名="变量值";
【2】let 变量名="变量值";
let 是 es6 新语法 作用域 比 var 小
【3】const 变量名="变量值";
const 声明常量
在 js 代码中常量不允许修改 , 已修改就会报错
</p>
<h1>【二】常用的js函数</h1>
<p>
【1】console.log() ---> print()
【2】alert() 弹框
【3】prompt 对话框 ---》 input 框
</p>
</body>
</html>
【四】数据类型
- 简单数据类型:Number、String、undefined、Boolean、null
- 复杂数据类型:Object
【1】字面量
- 字面量是用于表达固定值的方法,又叫常量
- 比如:数字、字符串、布尔值等
【2】数字字面量
- 这里指数学意义上的数字
- 数字字面量区分:整数、浮点数、特殊值
- 书写时直接写字面量,不需要加任何符号
【3】特殊值
- Infinity 无穷:无穷大Infinity ,无穷小-Infinity
- NaN:不是一个正常的数,是数字类型,可以通过isNaN来判断
【4】字符串
- 组成:字母,汉字,特殊符号,空白等
- 字符串的字面量写法:是用一对单引号或者一对双引号
- 如果字符串中含有单引号那么字面量写法就必须用双引号,反之也一样
- 转义符号:\n换行 ,\t缩进 ,' 单引号 ," 双引号,\反斜杠
【5】数字类型Number/字符串类型String/布尔类型Boolean
<h1>【1】数字类型 Number</h1>
<p>
查看变量类型 typeOf(变量名)
在js 中 浮点数和整数都是 number 类型
//var a= 1;
//typeof(a)
'number'
//var b = 1.11;
//typeof(b)
'number'
</p>
<p>
【2】将符合整数类型的 String 类型转换为 Number 类型
//var b = 1.11;
undefined
//typeof(b)
'number'
//var c= "1";
undefined
//typeof(c)
'string'
//var d = parseInt(c);
undefined
//d
1
//typeof(d)
'number'
【3】将符合浮点数类型的 String 类型转换为 Number 类型
//var f = "1.123";
undefined
//var g = parseInt(f)
undefined
//var h = parseFloat(f)
undefined
//g
1
//h
1.123
</p>
<p>
特殊值 NaN : not a number
【4】NaN 虽然不是一个数字 但是 他的类型是 number
//NaN
NaN
//typeof(NaN)
'number'
【5】NaN 不是一个数字 所以没办法 加减
NaN 加减后的结果是 NaN
//var a = 1;
//var b=2;
//a
1
//b
2
//a + b
3
//a + NaN
NaN
</p>
<h1>【6】Boolean 布尔类型</h1>
<p>
在 JS 代码里面 布尔值 的 真和假 是小写的 true 和 false
//var a = true;
//a
true
//typeof(a)
'boolean'
</p>
<p>
布尔值为空的情况
//Boolean(NaN)
false
//Boolean(null)
false
//Boolean(0)
false
//Boolean(undefined)
false
//Boolean(1)
true
</p>
<p>
强制类型转换 Boolean(变量)
</p>