一:什么JavaScript
1.javascript是web开发人员必须学习的3门语言之一:
1.HTML定义了网页的内容.
2.CSS:描述了网页的布局(样式)比起网页的颜色,字体大小等等
3.JavaScript:控制了网页的行为
JavaScript是一门解释性的语言,所以需要一个解释器(笼统的说引擎)
2.DOM和BOM
BOM(Browser object Model)是指浏览器对象模型,它使得JavaScript有能力与浏览器进行“对话”
包含window (navigator,screen,history,location,弹出框等等)
DOM(Document Object Model)是指文档对象模型,通过它可以访问HTML文档中的所有元素
HTML:标签语言,是所有网页访问的入口,访问任何网站都必须最先返回一段html
CSS:(放在<style></style>)控制页面的布局(字体颜色等等)
二.第一行代码
1.常见文档页面代码
console.log("hello world") //在控制台输出hello world。
alert('hello world')//弹出括号内容的对话框只有确定键
confirm("good")//有取消键的对话框,返回值为true
prompt("good")//带输入键的对话框,返回值是你输入的值
document.write("<h1>标题</h1>") //在页面写入标题,注意会覆盖原有的内容。
document.write("<p id='demo'>段落</p>")//不会覆盖
x=document.getElementById("demo")//获取document中包含demo的整个标签也就是<p id='demo'>段落</p>
x.innerHTML="Hello JavaScript "//把获取的标签里的内容修改为"Hello JavaScript "
document.write(Date())//在文档页面写入当前时间
三.字面量
JavaScript字面量
在编程语言中一般固定的值称为字面量
数字(Number)字面量,可以是整数或小数或者是科学计数
字符串(String)字面量可以使用单引号或者波浪键那个引号
数组(Array)字面量,[1,2,3]用逗号分隔
对象(Object)字面量,{'a':1}
函数(function)字面量
四.JavaScript变量
JavaScript使用关键字var(注意会变量提升,函数内部用var定义不会提升),let,const定义变量,使用等号来为变量赋值
var x,y实际上挂载到window全局对象上
X=0; y=1
变量可以通过变量名访问。变量可以改变,字面量是固定的值。
五.JavaScript操作符就是运算符
赋值运算符:=,+,+=,-=,*=,/=,%=
算术运算符:+,-,*,%,/,++,--,
比较运算符:>,<,>=,<=,==(涉及隐式转换,不严格意义上的相等,如'1'==1,返回值为true),===(严格意义上的相等),!=,!==(同理区分严格意义上不想等)
三目运算符: a?1:2(a为真则返回1,否则返回2)
逻辑运算符:&&(与),||(或),!(非),注意进行的是逻辑判断,也就是真假,返回值后续会讲
移位运算符:<<,>>>,>>
在JavaScript中移位运算符<<对负数进行移位时,符号位保持不变,空出得位置会用0填充。
从图可以看出,有符号右移,如果为正数补充0,为负数则补充1,无符号右移则没有正负之分,补0就完事
逻辑位运算符(转化成二进制):^(按位异或, 相同为0.不同为1),&(按位与,可以理解成有假为假),|(按位或,有真为真),~(按位非,简便运算取相应的负数减1即可)。
六.操作符优先级
能记住最好
eval就是把字符串当成代码去执行。
eg:原本var 是关键字,不能对它进行操作。
eval(var a=1)就是把var a=1当成字符串,而不是关键字啦。
JavaScript 有8种常见的数据类型:
基本类型:字符串(String),数字(Number),布尔(Boolean),空(null),未定义(undefined),Symbol (ES6新增)
引用类型:对象(Object),函数(function)
关键字:typeof 看数据类型
但是NULL例外,typeof null为Object,这个是js底层设计问题,类似还有:NaN===NaN为false 等