什么是 JavaScript?
- JavaScript(简称:JS) 是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互。
- JavaScript 和 Java 是完全不同的语言,不论是概念还是设计。但是基础语法类似。
- JavaScript 在 1995 年由 Brendan Eich 发明,并于 1997 年成为 ECMA 标准。
- ECMAScript6 (ES6) 是最主流的 JavaScript 版本(发布于 2015 年)。
补充:
ECMA: ECMA国际(前身为欧洲计算机制造商协会),制定了标准化的脚本程序设计语言 ECMAScript,这种语言得到广泛应用。而JavaScript是遵守ECMAScript的标准的。
知识点一:
JavaScript引入方式
- 内部脚本:将JS代码定义在HTML页面中
- JavaScript代码必须位于<script></script>标签之间
- 在HTML文档中,可以在任意地方,放置任意数量的<script>
- 一般会把脚本置于<body>元素的底部,可改善显示速度
<script>
alert("Hello JavaScript")
</script>
- 外部脚本:将 JS代码定义在外部 JS文件中,然后引入到 HTML页面中
- 外部JS文件中,只包含JS代码,不包含<script>标签
- <script>标签不能自闭合
知识点二:
JS基础语法
书写语法:
- 区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的
- 每行结尾的分号可有可无
- 注释: 单行注释:// 注释内容 ,多行注释:/* 注释内容 */
- 大括号表示代码块
输出语句 :
- 使用 window.alert() 写入警告框
- 使用 document.write() 写入 HTML 输出
- 使用 console.log() 写入浏览器控制台
<script>
window.alert("Hello JavaScript"); //浏览器弹出警告框
document.write("Hello JavaScript"); //写入HTML,在浏览器展示
console.log("Hello JavaScript"); //写入浏览器控制台
</script>
知识点三:
变量
- JavaScript 中用 var 、let、const关键字(variable 的缩写)来声明变量。
- var:声明变量,全局作用域/函数作用域,允许重复声明
- let:声明变量,块级作用域,不允许重复声明
- const:声明常量,一旦声明,常量的值不能改变
- JavaScript 是一门弱类型语言,变量可以存放不同类型的值 。
- 变量名需要遵循如下规则:
- 组成字符可以是任何字母、数字、下划线(_)或美元符号($)
- 数字不能开头
- 建议使用驼峰命名
知识点四:
数据类型
JavaScript中分为:原始类型 和 引用类型。
原始类型:
- number:数字(整数、小数、NaN(Not a Number))
- string:字符串,单双引皆可
- boolean:布尔。true,false
- null:对象为空
- undefined:当声明的变量未初始化时,该变量的默认值是 undefined
引用类型(数组,对象等)
使用 typeof 运算符可以获取数据类型
//原始数据类型
alert(typeof 3); //number
alert(typeof 3.14);//number
alert(typeof "A"); //string
alert(typeof 'Hello');//string
alert(typeof true);//boolean
alert(typeof false);//boolean
alert(typeof null);//object
var a ;
alert(typeof a);//undefined
注意:null的输出不是null而是object。原因参考官方文档
运算符
- 算术运算符:+ , - , * , / , % , ++ , --
- 赋值运算符:= , += , -= , *= , /= , %=
- 比较运算符:> , < , >= , <= , != , == , ===
- 逻辑运算符:&& , || , !
- 三元运算符: 条件表达式 ? true_value: false_value
注意:== 会进行类型转换,=== 不会进行类型转换
var a = 10;
alert(a == "10"); //true
alert(a === "10"); //false
alert(a === 10); //true
类型转换
- 字符串类型转为数字: 将字符串字面值转为数字。 如果字面值不是数字,则转为NaN。
- 其他类型转为boolean:
- Number:0 和 NaN为false,其他均转为true。
- String:空字符串为false,其他均转为true。
- Null 和 undefined :均转为false。
var age = 20;//数字类型
var _age = "20";//字符串类型
var $age = 20;
alert(age == _age); //true
alert(age === _age); //false ===自动转换类型
alert(age === $age); //true
//类型转换 - 其他类型转为数字
alert(parseInt("12")); //12
alert(parseInt("1222A45")); //1222,碰到字符立即终止
alert(parseInt("A45")); //NaN
//类型转换 - 其他类型转为boolean
if(0){ //false
alert("0 转换为false");
}
if(NaN){ //false
alert("NaN 转换为false");
}
if(-1){ //true
alert("除0和NaN其他数字都转为 true");
}
if(""){ //false
alert("空字符串为 false, 其他都是true");
}
if(" "){ //true
alert("字符串内容为一个空格, 不是空字符串,所以返回true");
}
if(null){ //false
alert("null 转化为false");
}
if(undefined){ //false
alert("undefined 转化为false");
}
流程控制语句:
请参考官方文档:JavaScript 语句参考手册https://www.w3school.com.cn/jsref/jsref_statements.asp