组成
- ecma标准
- bom 浏览器对象
- dom 文档对象
使用
- 在任何位置使用script标签
<script>document.write('直接使用')</script> - 外部引
<script src="./" type="text/javascript"></script> - 直接在html中使用
<input type="botton" value="点击" onclick="javascript:document.write('点击成功')">
核心语法(变量 语法约定 数据类型 运算符号 数组 控制语句 注释)
变量
使用var声明变量,变量有三种声明赋值方法
1、先声明再赋值
var width;
width = 100;
2、同时声明和赋值
var width=100;
var width,height=100; 只赋值给了height,width还是undefined初始值
3、不声明直接赋值
width = 100;也能成功,但是会改变全局的width值
数据类型
可以用typeof来查看变量是什么数据类型。
undefined 初始值
var a;
document.write(typeof(a))
null 空值,与undefined相等
var a = null;
document.write(a)
number 整数、浮点数
var a = 100;
var b = 12.2;
document.write(typeof(a))
document.write(typeof(b))
bollean 布尔型 true、false
var a = 100;
var b = 12.2;
document.write(typeof(a>b))
document.write(typeof(a<b))
string 字符串 被(单/双)引号括起来的文本
var str1 = '字符串';
var str2 = "还是字符串";
document.write(typeof(str1))
document.write(typeof(str2))
Symbol es6新增的数据类型,表示括号内容是独一无二的数(就算别人和他数值一样,意义也不相等)
var sym1 = Symbol(12);
var sym2 = 12;
document.write(sym1 == sym2)
document.write(typeof(sym1))
对象
var obj = {};
document.write(typeof(obj))
运算符
+加号
var a = 1;
var b = 2;
var c = '3';
document.write(a+b) 数值a+数值b等于3
document.write(a+c) 数值a+字符串c,a会进行隐式转换,变成字符串类型,和c拼接,等于13
-减号
var a = 1;
var b = 2;
var c = '3';
document.write(a - b) 数值a-数值b等于-1
document.write(a - c) 数值a-字符串c,c会进行隐式转换,变成数值类型,和a相减,等于-2
*乘号
var a = 2;
var b = 2;
var c = '3';
document.write(a * b) 数值a*数值b等于4
document.write(a * c) 数值a*字符串c,c会进行隐式转换,变成数值类型,和a相乘,等于6
/除号
var a = 6;
var b = 2;
var c = '3';
document.write(a / b) 数值a/数值b等于3
document.write(a / c) 数值a/字符串c,c会进行隐式转换,变成数值类型,和a相除,等于2
%取余
var a = 6;
var b = 2;
var c = '4';
document.write(a % b) 数值a/数值b等于2余数0
document.write(a % c) 数值a/字符串c,c会进行隐式转换,变成数值类型,和a相除,等于1余数2
++原值加1
var num1 = 2;
var num3 = 2;
var num2 = num1++;
var num4 = ++num3;
document.write(num1) num1初始值=2,经历了下方的num1++,所以读到最下面write语句时,num1=3
document.write(num2) num2等num1,此时num1还未经过++,所以num2=2
document.write(num4) num3先经过++,变成num3=3,num4等num3,所以num4=3
--原值减1
var num1 = 2;
var num3 = 2;
var num2 = num1--;
var num4 = --num3;
document.write(num1) num1初始值=2,执行了第三行num1--,所以读到最下面write语句时,num1=1
document.write(num2) num2等num1,此时num1还未经过--,所以num2=2
document.write(num4) num3先经过--,变成num3=1,num4等num3,所以num4=1
大于号
var a = 10;
var b = 20;
document.write(a > b) 10>20是错的,输出布尔值false
小于号
var a = 10;
var b = 20;
var c = 5;
document.write(a < b) 10>20是对的,输出布尔值true
document.write(a < b < c) 不要使用连续比较,结果只返回第一个<的结果true,是错误的
document.write(a > b > c) 不要使用连续比较,结果只返回第一个>的结果false,是错误的
大于等于和小于等于
var a = 10;
var b = 20;
document.write(a >= b) a不大于也不等于b,返回false
document.write(a <= b) a不等于b,但是a小于b,只要有一个比较运算是对的,就返回true
==(只比较值),===(不仅比较值,还比较类型),!=(不等于,只比较值)
var a = 2;
var b = '2';
var c = '3';
document.write(a==b) a和b的值是一样的,返回true
document.write(a===b) a和b的值是一样的但是a是number,b是string,类型不一样,返回false
document.write(a!=c) a和c的值不一样,类型也不一样,但是!=只比较值,所以返回true