—、基本的输入状态
![image.png](https://upload-images.jianshu.io/upload_images/19367147-71511899dd5749a5.png?imageMogr2/auto-
orient/strip%7CimageView2/2/w/1240)
二、什么是js (javascript)
与网页进行交互的脚本语言,具有一定的逻辑性
三、js的组成部分?
1. ECMASCRIPT定于语法规范(关键字、保留字)
2. DOM文档对象模型(用代码控制元素)(有规范)
3. BOM浏览器对象模型(用代码控制前进,后退,刷新,调用打印)
四、初体验js的三句话
+1 .在控制台输出
console.log("你好"); //console开发人员,测试使用
+2.在页面上显示
document.write("你好");
document.write("< a href='#'>百度<la>")
+3.对话框
alert("你好!");
五.js脚本的特点
(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求.
(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作,JavaScript都可直接对这些事件给出相应的响应。
(5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提是机器上的浏览器支持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。
六、注释
+单行注释
ll console.log("hi");ctr+/当行注释快捷键
**/
console.log("hi");
console.log("hi");
console.log("hi");
**/
多行注释shift+alt+a
注意:多行注释的快捷点非常不友好,就改掉快捷
![image.png](https://upload-images.jianshu.io/upload_images/19367147-af4fb39b1241b759.png?imageMogr2/auto-
orient/strip%7CimageView2/2/w/1240)
在搜索框里输入`shift+alt+a'
改快捷键
![image.png](https:l/upload-images.jianshu.iolupload_images/19367147-844c82776b691604.png?imageMogr2l/auto-
orient/strip%7CimageView2/2/w/1240)
七、引入外部文件,使用script
标签
- 1.细节,一旦使用src属性,那么该
script
标签内就不能编写任何代码,所有的代码,都必须放外部的js文件. - 2.js的解析引擎,属于单线程,正常情况,遇到了script,就终止html的解析,此时理解执行script的代码.我们将会遇到js不能操作dom.
目前解决方案
+把scrip放置body
标签的后面
+在script
标签上面添加async'或defer能实现异步(先把所有的html解析完后,在执行
script`代码)
注意: async
和 defer
都是异步,但是有区别
-
defer
异步之后,按照顺序执行代码 -
async
异步之后执行,按照网络加载的速度来执行(用得少,打乱依赖关系)
八、charset 设置字符串编码集
<script charset="utf-8">
</script>
九、数据类型
- 1.ES3的时候,js的数据类型只有6个
- 2.js的数据类型,属于弱类型,类型可以随意修改
- 3.js声明变量可以不赋予初始值(不推荐)
string字符串类型﹐由一组双引号或者一组单引号组成
number 数值类型,它包含(整型,浮点)浮点:小数点类型
boolean布尔类型,它的世界里只有(true和fasle) true真,fasle假
null空指针(方便理解是个寂寞)
undefined未定义类型审明变量不赋予初始值,默认值就是undefined
object对象类型(引用类型)
系统定义:Object,Array,Function,Date...
自定义的:构造函数或者类定义自己的类型
十、如何定义变量
定义变量使用var关键字var variablevar strName;l/它的默认值undefined
strName="刘德华";在内存中开辟一个空间,空的名字叫做strName,
该空间里装值是刘德华
注意: =
,它会改变代码的指向顺序,会从右往左赋值,而且'==`还会进行隐式换行
十一、命名规则
1,变量名可以是数字,字母,下划线_和美元符$组成;
2,不能为数字开头;
3,不能使用关键字或保留字
4,标识符区分大小写,如: age和Age是不同的变量。但强烈不建议用同一个单词的大小写区分两个变量。
5,变量命名尽量遵守驼峰原则: myStudentScore
6,变量命名尽量见名思意,可参考下图
![image.png](https:l/upload-images.jianshu.iolupload_images/19367147-09f481901180d95d.png?imageMogr2/auto-
orient/strip%7CimageView2/2/w/1240)
十二、其他类型转boolean类型(重点)
Boolean类型的转换规则:(牢记)
String:非空字符串为true,空字符串为fal
seNumber:非O数值为true,0或者NaN为false
Object:对象不为null则为true, null为fal
seUndefined: undefined为false
//在做运算的时候,才容易出现NaN
NaN : not a number不是一个数组NaN属于number类型,(特殊的值)
//特殊的值: NaN,undefined,null;
十三、其他类型转number类型
1.隐式转换
除了加法以外的运算,都是隐式转换,还有=也能做隐式转换
var sName="100"
sName-0 //100
sName*1 // 100
sName/1//00
2.强制转换
使用了一些函数来除了
Boolean()转bool类型
parselnf()转数值类型,可以带单位,A会保留整数
parseFloat()转数值类型,可以带单位,会保留小数点
Number()转数值类型