1.js的基础语法
2.js调试
  1.F12调出控制台,查看提示错误及其位置。
  2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行。
3.语法规范
  1.js语句:可执行的最小单元
    必须以 ; 结束
    严格区分大小写
       ex:console.log();  //正确
          Console.log();  //错误
    所有符号必须是英文标点符号
  2.js注释
    // :单行注释
    /**/ :多行注释
4.变量和常量
  1.变量
    1.声明变量
      var 变量名;
      ex:
      var uname;
    2.为变量赋值
      变量名=值;
    3.声明变量时直接赋值
      var 变量名=值;
    注意:
      1.允许在一条语句中声明多个变量,用逗号隔开即可。
      ex:
      var user_name="Hanmm",user_age=18;
      2.如果声明变量,但未赋值,则值默认是undefined。
      3.声明变量时可以省略var,但不推荐。
  2.变量名的命名规范
    1.不允许使用关键字和保留关键词
      var const if else for while int string...
    2.允许包含字母,数字,下划线,$
    3.不能以数字开头
    4.最好见名知意 
      ex:
      var a;
      var uname;
    5.尽量使用"小驼峰命名法"
      var uname;
      var userName;//小驼峰
      var UserName;//大驼峰
      var user_name;//下划线
  3.变量的使用
    1.声明变量 未赋值 值默认是undefined
    2.使用未声明的变量,则 报错。
    3.取值操作-get
      变量只要没出现在=的左边,一律是取值操作。
    4.赋值操作-set
      变量名出现在=的左边,一律赋值操作。
    练习:
      用三个变量来保存笔记本信息:
        笔记本名称
	笔记本价格
	笔记本库存
	并将笔记本信息打印在控制台:输出格式如下:
	 ex:
	 笔记本名称:ThinkPad E460
  4.常用的使用
    1.什么是常量?
      在程序中,一经声明就不允许被修改的数据就是常量。
    2.语法
      const 常量名=值;
      常量名在程序中,通常采用大写形式。
      ex:
        const PI=3.14;
      练习:
        1.创建一个常量PI,赋值3.14,并打印在控制台,
        再将声明好的常量PI的值更改为31.4,尝试打印输出,观察结果。
5.数据类型
  1.数据类型的作用
    规定了数据在内存中所占的空间。
    40:占4个字节 也就是32位
    40.1
    bit:位 
    8bit=1byte 字节
    1024byte=1KB 
    1024kb=1MB 
    1024MB=1G 
    1024G=1T
  2.数据类型详解
    1.数据类型分类
      1.原始类型(基本类型)
        1.Number类型
          数字类型
	  作用:可以用来表示32位的整数,也可以是64位的浮点数(小数)。
	  整数:
	     1.十进制
	       由0-9的数字组成,缝十进一
	       var age=25;
	     2.八进制
	       由0-7的数字组成,缝八进一
	       八进制中以0开头
	     3.十六进制
	       由0-9和A-F组成,缝十六进一
	        A:10
		B:11
		C:12
		D:13
		E:14
		F:15
                十六进制中以ox开头
          浮点数(小数):
	     小数点计数法:12.34  
	     指数计数法:3.4e3(3.4乘以10的3次方)
	2.String类型
	  字符串类型
          作用:表示一系列的文本字符数据,如:姓名,性别,地址等。
	  每个字符在计算机中都有一个唯一的编码来表示该字符,该码称为Unicode码。
	  查找一个字符的unicode码:
	    "一".charCodeAt();//默认十进制
	    "一".charCodeAt().toString(16);//十六进制
	    674e-->unicode转换成汉字?
	    转义字符:\u 
	    其它转义字符:
	      \n:换行
	      \t:制表符(缩进)
	      \":"
	      \‘:‘
	      \\:\
	    字符串在使用过程中,需要使用‘‘或""括起来。    
	3.Boolean类型
	  作用:在程序表示真或假的结果
	  取值:true或false
	  ex:
	    var isBig=true;
	  在参与到数字运算时,true可以当做1运算,false可以当做0运算。
	  ex:
	   var result=25+true;//结果:26
	4.Undefined类型
	  作用:表示使用的数据不存在
	  undefined类型只有一个值,即undefined,当声明的变量未赋值时,该变量的默认值是undefined。
	  ex:
	    var num;
	    console.log(num);//结果undefined
	5.Null类型
	  null用于表示尚不存在的对象。
	  null类型只有一个值即null,如果函数或方法返回的是对象,找不到该对象时,返回的通常是null。
	  ex:
	   document.getElementById("uname");
	  
      2.引用类型
    2.数据类型转换
      1.隐式(自动)转换
        不同类型的数据在计算过程中自动进行转换。
        1.数字+字符串:将数字转换为字符串
	  var num=15;
	  var str="Hello";
	  var result=num+str;//15Hello
	2.数字+布尔:将布尔转换为数字
	  var num=15;
	  var isSun=true;
	  var result=num+isSun;//结果16
	3.字符串+布尔:将布尔类型转换为字符串
	  var str="Hello";
	  var isBig=true;--》"true"
	  var result=str+isBig;//结果Hellotrue
	4.布尔+布尔:将布尔类型转换数字
	  var isBig=true;
	  var isSun=false;
	  var result=isBig+isSun;//结果1
	问题:
	  var num1=15;
	  var num2=17;
	  var str1="Hello";
	  1.str1+num1+num2
	    结果:Hello1517
	  2.num1+num2+str1
	    结果:32Hello
	允许使用typeof()的函数检查变量的数据类型。
      2.强制转换-转换函数
        1.toString()
	  将任意类型数据转换为字符串
	  语法:var result=变量.toString();
	  ex:
	  var num=15;
	  var result=num.toString();
	  console.log(typeof(result));//string
	2.parseInt()
	  将任意类型的数据转换为整数
	  如果转换不成功,结果为NaN(Not a Number)
	  语法:var result=parseInt(数据);
	  ex:
	  var num="123abc"; //结果123
	  var num1="abc123";//结果NaN
	3.parseFloat()
	  将任意类型的数据转换为小数
	  如果转换不成功,结果为NaN。
	  语法:var result=parseFloat(数据);
	4.Number()
	  将任意类型的数据转换为number
	  注意:如果包含非法字符,则返回NaN
	  语法:var result=Number(数据);
	练习:
	   1.弹出一个输入提示框,输入金额,并保存在变量money中
	    ex:
	    var money=prompt("请输入金额:");
	   2.将money+10,再打印输出加10后的结果
	   3.注释掉第2步,使用typeof()检查money的类型。
	   4.将money转换为数字,再+10打印输出。
6.运算符和表达式
  1.表达式:由运算符和操作数组成的式子就是表达式
  任何一个表达式一定会有结果。
  ex:
    15+17
    var x=y=10;
    17<15
  2.运算符
    1.算术运算符
      +,-,*,/,%,++,--
      5%2=1 5模2 余数是1
      ++:自增,只做+1操作
         ++在前,先自增,再运算
	 ++在后,先运算,再自增
      --:自减,只做-1操作
         --在前,先自减,再运算
	 --在后,先运算,再自减
	ex:
	 var num=5;
	 console.log(num++);//5
	 console.log(++num);//7
	练习:
	 var num=5; 
	             5    (6)6     6(7)  
	 var result=num + ++num + num++ + ++num + num++ +num;  结果:42
         (8)8     8(9)   9 
    2.关系运算符(比较运算符)
      >,<,>=,<=,==,!=,===,!==
      运算结果为:boolean类型(true,false)
      问题:
        1.5>"10"  结果:false
	  关系运算符两端,只要有一个是number的话,另外一个会隐式转换为number,再进行比较。
	2."5">"10" 结果:true
	  关系运算符两端,如果string的话,则比较每位字符的unicode码,以unicode码不相等的两个字符比较结果作为整体结果。
	  "张三丰">"张无忌" 结果:false
	    "三".charCodeAt(); 
	    "无".charCodeAt();
	3."3a">10 结果:false
	  Number("3a")--->NaN
	  NaN
	  注意:
	     NaN与任何一个数据做比较运算时,结果都是false。
NaN与任何数据做!=,结果永远都是true。
	     NaN与任何数据做==,结果永远都是false.
	  isNaN()函数:
	     作用:判断指定数据是否为非数字,如果不是数字,返回值为true,是数字的话返回值为false。
	  
    3.逻辑运算符
      逻辑运算符:&&,||,!
      !:取反
      &&:并且,关联的两个条件都为true时,整个表达式的结果为true。
      ||:或者,关联的两个条件,只要有一个为true,整个表达式的结果为true。
      
      短路逻辑与:&& 做条件判断
         当第一个条件为false时,整体表达式的结果就是false,不再判断或执行第二个条件。
	 当第一个条件为true时,会继续判断或执行第二个条件。
      短路逻辑或:|| 
         当第一个条件true时,就不再执行后续表达式,整体结果为true。
	 当第一个条件false时,继续执行第二个条件或操作。
    4.位运算符
      <<,>>,&,|,^
      右移是把数字变小,左移是把数字变大
      按位与:& 判断奇偶性
         任意数字与1做按位与 ,结果为1,则为奇数,结果为0,则为偶数。
	 var num=323;
	 var result=num & 1;
	 console.log(result);
      按位或:| 对小数取整
         将任意小数与0做按位或,结果则取整数部分。
	 var num=123.45;
	 var result=num | 0;
	 console.log(result);
      按位异或:^ 用于交换两个数字
         var a=3;
	 var b=5;
	 a=a^b;
	 b=b^a;
	 a=a^b;
	 console.log(a);
	 console.log(b);
      二进制位数,逐位比较,不同则为1,相同则为0。
      
      练习:
        声明两个变量,分别保存两个整数。
	用异或实现数字的换位。
	输出方式如下:
	 console.log("换位前a:"+a);
console.log("换位后a:"+a);
	  
	  
原文:https://www.cnblogs.com/QiliPING9/p/9027860.html