初识JavaScript
1.JavaScript概述(JS)
1.1JavaScript和Java的关系?
它俩之间的关系就是:老干爹和老干妈、雷锋和雷峰塔
JS的原名:LiveScript 后来出现的时候 发现Java火了 于是改名JavaScript
在准备发行这个名字的时候 Sun公司抢注了这个名字 所以其实现在的JavaScript名字版权是Oracle的 JavaScript这个名字只是授权给它用的
当初LiveScript在开发设计的时候(和Sun公司有合作) 大量参考了Java的语法结构 但也仅仅限于相似 底层不一致
1.2JavaScript的作用
Script:脚本
JS是一种脚本语言 而非Java这类静态语言
它是前端三剑客中的行为交互剑客
一个没有JS的页面 哪怕有美丽的躯壳 它也是没有灵魂的
编译器和解释器的区别:
编译器和解释器的作用都是一致的,用于将人类通过语法编写的代码解释为计算机能识别的机器码
-
在静态语言中 一般称为编译器(性能好)
编译器是能够把编写的代码 首先编译成一种静态的二进制文件 后续运行都是依靠于这套编译好的二进制文件
如果没有代码更改 则可以直接使用二进制文件运行即可 如果有改动需要重新编译
-
在脚本语言中 一般称为解释器(性能较差 更加灵活)
解释器是能够把编写代码直接编译成计算机可以执行的机器码 而且这个过程中没有静态文件
如果改动了代码 那么计算机执行就实时更换了 但是因为没有中间的静态文件存在 所以需要每次都进行编译
自上而下的一行行解释 它是边解释边执行
2.JS的第一个程序
辅助HTML使用 和CSS类似 需要在HTML中编写
在<script></script>
标签内编写JS代码
1.在HTML中添加<script></script>
标签 但是一般会放在body后
2.在<script></script>
中添加HTML注释 然后再注释中添加JS代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
<!--
document.write("<h1>Hello World</h1>");
-->
</script>
</body>
</html>
因为技术发展 JS的代码不用再编写HTML注释了 同样一些规范也在发生改变
例如:建议使用单引号 建议去除分号
3.JS的引入方式
联想CSS来记忆
-
通过在HTML中编写
<script></script>
来进行引入 -
通过外部JS文件来编写,最后通过
<script></script>
引入到HTML中<script src="js/index.js" type="text/javascript" charset="utf-8"></script>
-
通过在标签内部的事件属性们来绑定JS代码
<input type="button" name="" id="" value="点我啊" onclick="javascript:alert('别点了 大哥!');" />
外部JS文件的引入标签 千万不要和内部代码编写混用
如果你希望引入外部的JS文件,还希望继续编写你的内容 记得你的内容 重新以一个<Script>
标签来编写
JS代码是自上而下运行的,注意顺序
4.JS的核心语法
4.1变量
-
先声明再赋值
var 变量名;
变量名 = 变量值;
-
声明的同时并赋值
var 变量名 = 变量值;
ECMAScript 6 建议使用let作为局部变量声明标识符
let 变量名 = 变量值;
4.2数据类型
- undefined 未赋值
- string 字符串
- boolean 布尔值
- number 数值类型 整数和小数
- object 对象 内置对象 自定义对象 null值目前的数据类型为object
- null
4.3常用的字符串方法
-
charAt(index) 获取字符串中指定索引的字符
-
indexOf(str) 获取字符串中指定字符/字符串第一次出现的位置
-
substring(index1,index2) 截取字符串(子串)
-
split(正则)将字符串切割为数组
-
length 获取长度
4.4数组
- var 数组名 = new Array(长度)
- var 数组名 = new Array(元素1,元素2,……)
- var 数组名 = [元素1,元素2,……] (JSON数组格式 但是使用上和JS数组一样)
常用方法:
- 数组名.push(‘xx’) 想数组末尾追加内容
- 数组名.join(‘分隔符’) 将数组转换为字符串
- 数组名.pop() 移除数组中最后一个元素
- 数组名.sort() 升序排序
for循环遍历
4.5运算符号
=== 和 ==的区别:
== 只会比较内容是否相同
=== 不仅比较内容 还比较类型是否相同
4.6~4.8选择结构 循环结构 循环控制语句
4.9输入和输出
- alert() 弹出
- document.write() 输出
- prompt(提示语,[输入框默认值]) 可以获取输入的内容 如果点取消 则返回null
5.JS的函数
5.1自定义函数
分类:
- 无参无返
- 无参有反
- 有参无返
- 有参有返
function函数名([参数列表]){
[return 返回值]
}
5.2系统函数
- alert()
- prompt()
- parseInt() 解析为整数
- parseFloat() 解析为小数
- isNaN() is not a number 判断如果不是数值为true 是数值则为false
注:笔记思路来自查老师!!