一,输出

<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,转义字符需要加上\,比如

  “表示成\",

  \t制表符相当于tab键,

  \n相当于换行,

  \相当于\\,

  \\相当于\\\\。

 

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;">&#9760;</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中&&比||运算级别高

  如果遇到运算级别不清楚,可以使用括号。