一,输出
<script type="text/javascript">
//alert("弹出一个框");
//document.write("在body里面输出");
//console.log("控制台输出,开发者能够查看");
</script>
1,JS严格区分大小写
2,每一条都用分号结尾,如果不加分号,浏览器会自动加上,
但是会消耗系统资源,还会插入错误
3,注释就用//或者/**/,快捷键是crtl+/
4,自上而下覆盖
二,字面量和变量
字面量:不可改百年的值
如1,2,3
变量:保存字面量,可以任意改变
如var a=123;//声明赋值同时进行
console.log(a);
三,标识符
在JS中所有的可以由我们自主命名的都可以成为标识符,例如变量名,函数名,属性名。命名规则:
1,标识符中可以包含字母数字下划线和$
2,不可以用数字开头
3,标识符不能是关键字和保留字
4,标识符一般用驼峰式命名,如helloWorld
四,数据类型
数据类型指的就是字面量的类型
JS中有6中数据类型:String,Number,Boolean,Null,Underfined,Object(前五个是基本数据类型,最后一个是引用数据类型)
1,String
1,字符串需要用引号引起来,单双都可以但不要混用
2,转义字符需要加上,比如
“表示成",
制表符相当于tab键,
相当于换行,
相当于\,
\相当于\\。
2,Number
1,所有的数值都是Number类型,包括整数浮点数。
2,可以使用运算符typeof检查一个变量的类型 typeof变量
var a=123;
console.log(typeof a);
Number.MAX_VALUE表示最大值,Number.MIN_VALUE表示零以上的最小值,如果数字超过最大值,则类型表示成Infinity(无穷)
NAN表示不是一个数字
3,如果使用JS进行浮点数元素运算,可能得到一个不精确的结果
4,千万不要使用JS进行精度要求很高的运算
3,Boolean
1,只有两个值,真,假
var bool=true;
console.log(bool);
4,Null
类型值只有一个,就是null.用typeof检测的时候,会返回object
5,Undefined
1,类型值只有一个,就是undefined。用typeof检测的时候,会返回undefined
五,强制转换
1,转为String
方法一:
1,调用被转换字符的toString()方法。
调用xxx的yyy方法就是xxx.yyy();
2,null和undefined没有toString方法。如果调用会报错
方法二:
1,调用String()函数,转为字符串
a=null;
a=String(a);
console.log(a);
2,转为Number
方法一:
调用Number()函数转为Number类型
1,如果纯数字转换,直接转换
2,含有非数字内容,转换为NAN
3,如果字符串是一个空串或者是一个完全是空格的字符串,则转为0
4,Boolean类型转Number,true-->1,false-->0
5,null转成0
6,undefined转为NAN
方法二:
1,parseInt可以将字符串中从头到尾遍历,将有效的整数内容取出来,转换为Number。
2,parseFloat可以取出有效的小数
其他进制的数字
(1),在JS中如果需要表示16进制的数字,则需要以0x开头
a=0x10;
a=0xff;
(2),在JS中需要表示8进制的数字,则需要以0开头
a=070;//有些浏览器当成8进制,有些当成10进制
可以在parseInt中指定第二个参数,指定进制,
如parseInt(a,10);//70 如parseInt(a,8);//56
(3),在JS中需要表示2进制的数字,则需要以0b开头
a=0b10;
3,转为Boolean
使用Boolean()函数转为布尔
(1)字符串转布尔,除了空串都是true
(2)数字转布尔,除了0和NAN都是true
(3)null和undefined都会转换为false
(4)对象也会转换为true
六,算数运算符
运算符也叫操作符
(1),算术运算符,不会对原数字产生影响:+ - * /
(2),任何值和NAN做运算都是NAN
(3),任何值和字符串做+运算,都会转换成字符串然后与字符串做拼接,如果做-*/,则都转为Number
(4),为任意数据类型加一个”“,即可将其转换为String类型字串,这是一种隐式的类型转换。
一元运算符:+-
其中有隐式类型转换,console.log(1+"2"+3);//123
console.log(1+ +"2"+3);//6
自增:++
分为两种,后++(a++),前++(++a)
var d=20;
var result=d++ + ++d + d;//20+22+22=64
a++的值等于原变量的值,++a的值等于变化了的新值
自减:--
a--的值等于原变量的值,--a的值等于变化了的新值
逻辑运算符:! && ||
非运算:
对布尔值非运算,布尔值取反
对非布尔值非运算,先转换为布尔值,然后再取反
隐式转换:对同一个值进行两次非运算既可以转换成为Boolean类型
与运算:
两端都是true返回true。短路与&&,第一个表达式值为false不判断第二个,直接返回false
如果第一个值是true一定要返回第二个
如果第一个值是false则返回第一个。
或运算:
两端都是false,才返回false。短路或,第一个是true则不用判断第二个,直接输出true
如果第一个值是flase一定要返回第二个
如果第一个值是true则返回第一个。
七,赋值运算符
可以将符号右侧的值赋值给符号左边的变量
a+=5; -->a=a+5;
a-=5; -->a=a-5;
a*=5; -->a=a*5;
a/=5; -->a=a/5;
a%=5; -->a=a%5;
八,关系运算符
>:
如果左边大于右边,返回true,否则false
<:
如果左边小于右边,返回true,否则false
>=,<=
对于非数值进行比较
(1)先将其转换为数字然后进行比较
(2)任何值和NAN比较都是false。(字串转换为数字是NAN)
(3)如果符号两边都是字符串,则比较是字符串的编码。如果两位一样,则比较下一位,所以借用他对英文进行排序
(4)如果比较两个字符串类型的数字,一定要转型,不然会出现不可预期的结果。
九,Unicode编码
在字符串中使用转义字符输入Unicode编码:
方法一:
可以直接在scripts中加上console.log("u2620");
方法二:
在网页中使用Unicode编码,&#编码,这里的编码要十进制的。(网上找的是十六进制的,通过电脑计算器就可以算出十进制对应的数字)
如:<h1 style="font-size:200px;">☠</h1>
十,相等运算符
==:
(1)当使用==运算时候,会转换为相同类型进行转换,大部分情况转换成数字。
(2)NAN不和任何值相等,包括它本身
(3)undefined和null比较是相等的
(4)通过isNaN判断一个值是不是NaN
如:console.log(isNaN("12"));
!=:
console.log(10!=5);//true
类型不同会自动进行类型转换
===:
用来判断两个值是否全等。和==类似,但是不做自动类型转换。
console.log(null===undefined);//false
!==:
不全等,如果两个值不全等或者类型不相同则返回false,不会自动进行类型转换。
十一,条件表达式
a?b:c;
如果a为true,则执行b,否则执行c
如果a是非Boolean值,会自动转为Boolean值进行运算
十二,运算符的优先级
JS中&&比||运算级别高
如果遇到运算级别不清楚,可以使用括号。