JavaScript基础语法

【使用JS的三种方式】
   一、在html标签中,直接使用JS(并不提倡使用):
   栗子:<button onclick="alert('我好啊')">点本宝宝</button>
   不符合内容与行为分离的要求!
   
   二、在html页面中使用<script></script>包裹JS代码:
   栗子:<script type="text/javascript">
      JS代码;
        </script>
   script标签能够放到页面的任何位置。
   
   三、引入外部的JS文件
   <script language="JavaScript" src="JS/01.js" ></script>
   
   【注意事项】
   一、<script></script>能够嵌入页面的任意位置。可是,位置的不一样会致使JS代码的执行顺序不一样;
   好比:<script></script>放到<body></body>前面,则JS代码会在页面加载以前执行。
   二、引入外部的JS,<script></script>必须是成对出现的标签。并且,标签中不能有任何JS代码。
   
   JS中多行注释。ctrl+shift+/
   JS中单行注释。ctrl+/javascript


   【JS中变量】
   一、JS中变量申明的写法:
      var num=1;//使用var申明的变量,属于局部变量,只在当前做用域有效;
      num=1;//不用var申明的变量,默认为全局变量,在整个JS文件中有效。
      var x=1,y=2,z=1;//使用一行语句申明多个变量,下式中,x,y属于以申明,可是未赋值状态,结果为undefined;
      var x,y,z=1;
      alert(x);
      alert(y);
      alert(z);html


   【申明变量注意事项】
   一、JS中全部变量的申明,均使用var关键字,变量具体是什么数据类型,取决于给变量赋值的类型。
   二、同一个变量,能够在屡次不一样赋值时,修改变量的数据类型;
   var a=1;//从初始申明,a属于整形
    a="chuanchuan";//重复赋值时,整数型的a被修改成字符串型类型;
   三、变量可使用var申明,也能够不实用var申明。
   【区别】使用var申明为局部变量,不使用var申明为全局变量;
   四、只用var申明,可是不赋值,结果为undefined;
   例如:var a;//a为undefined。
   可是,若是不申明也不赋值a,直接使用会报错。
   五、同一变量名能够屡次使用,可是后面的var并无用,第二次使用var申明时,只会被理解为普通的赋值操做。
   
 【变量名的命名要求】
      一、只能有字母,下划线,数字组成;
      二、开头不能是数字;
      三、变量名区分大小写,大写字母与小写字母为不一样变量;java


 【变量名的命名规范】
  一、要符合小驼峰法则:首字母小写以后每一个单词的首字母大写。
      例如:myNameIsChuanChuan
   二、或者使用匈牙利名命法
   my_name_is_chuan_chuan
   三、mynameischuanchuan  能用,可是不规范
   
   【JS数据类型】
       一、Undefined:未定义。已经使用var神明的变量,可是没有赋值的状况。如:var a;
       二、Null:空引用。
       三、Boolean:布尔类型。表示真假,只有两个值,true和flase
       四、Nnumber:数值类型,能够是整数,也能够是小数
       五、String:字符串类型,用""或''包裹的内容,称为字符串
       六、Object:对象类型,
       
   【经常使用的数值函数】
       一、isNaN():判断一个变量或常量是否是NaN(not a number 非数值);
           使用NaN()判断时,会尝试使用Number()函数进行转换,若是最终结果可以转换为数字,则不是NaN,结果为false。
   
    二、Number()函数:将其余类型的数据,尝试转为数值型。
    [字符串类型]
    字符串为纯数值字符串,会转为对应数字;例如:"111"->111
    字符串为空字符串,会转为0;例如:""->0
    字符串包含任何其余字符串时,都不能转;例如:"1a"->NaN
   [boolean类型]
   true->1     flase->0
   【Null/Undefined】
   Null->0     Undefined->NaN
   
   parseInt():将字符串转为整数类型;
   纯数值字符串,能转。
   "12"->12;  "12.9"->12(小数转换时,直接抹掉小数点,不能进行四舍五入)
   空字符串,不能转。""->NaN
   包含其余字符串,会截取第一个非数值字符串前的数字部分
   "123a456"->123;   "a123b456"->NaN
   parseInt()只能转字符串。转其余类型,全是NaN。
   
   【Number函数与ParseInt函数的区别】
   一、Number函数能够转各类数据类型,ParseInt函数只能转字符串
   二、二者在转字符串时,结果不彻底相同。(详解见上面解释)
   
   parseFloat:将字符串转为数值型;
   转换规则与ParsenInt相同,只是若是有小数,则保留小数点;若是没有小数,则依然是整数;
   "12.5"->12.5;   "12"->12
   
   typeof:检测变量的数据类型:
   字符串->String        数值->Number     未定义->Undefined
   true/false->Boolean   函数->function   对象/Null->object   
   
   【JS中经常使用的输入输出语句】
   一、document.write();将括号中内容打印输出到浏览器屏幕上;
   使用时需注意:除变量,常量外全部内容,必须放到""中,变量和常量必须放到""外面;
   若是同时又变量和字符串,必须用+连接
   例如:document.write("左手中的纸牌:"+left+"<br/>");
   二、alert();使用弹窗输出;
   弹窗警告,()中的内容与上述要求相同。
   三、prompt();弹窗输入
   接受两部分参数:
   ①输入框上面的提示内容,可选;
   ②输入框里面的默认信息,可选;
   当只写一部分时,表示输入的内容。点击肯定按钮,变量被赋值为输入内容;点击取消按钮,变量将被赋值为null;
   输入内容时,默认接收的数据类型都是    字符串!
   例如:var num1 = prompt("请输入第一个数:"); 
   var num2 = prompt("请输入第二个数:"); 
   var sum  = parseFloat(num1)+parseFloat(num2);
   alert("结果是:"+sum);浏览器

【算术运算】
       + 、-、*、 /、 %、++ 、--
      +:有两种做用,连接字符串/加法运算。当+两边全为数字时,进行加法运算;当+两边任意一边为字符串时,
       起连接字符串做用,连接做用,连接以后结果为字符串。
       除+外,其他符号运算时,会将左右变量用Number函数转为数字。
      
      /:结果保留小数点。
      ++:自增运算符,将  变量  在原有基础上+1。
      --:自减运算符,将  变量  在原有基础上-1。
     
      【a++和++a异同】
      一、相同点:不管a++仍是++a,运算完后,a的值均会+1;
      二、不一样点:a++,先用a的值去运算,再把a+1;
           ++a,再把a+1,再用a的值去运算;
     
   【赋值运算】
       =  +=  -=  *=  /=  %=
       +=:a+=b;至关于a=a+b;可是前者运算效率比较快,推荐+=的写法。
      
   【关系运算】
       ==、  !=、>、<、>=、<=
         关系运算符运算以后的结果,只能是Boolean类型;
         判断一个数字是否处于某个区间,必须用&&连接;
         例如:a<10 && a>0
      ===:严格等于,要求不但类型相同,值也必须形同。
      ==:等于,类型相同与===效果同样,类型不一样时,会尝试用Number将两边转数字,而后再判断。
         可是,有个别特例,如:Null==false ×    Null==Undefined  √  Null==Null  ×
     
   【条件运算符(多目运算)】
       a>b?true:false 
         当?前面运算结果为true时,执行:前面的代码
         当?后面运算结果为true时,执行:后面的代码
         冒号两边为数值,则整个式子可用于赋值。var a =1<2?1:2;
         冒号两边为数值,将直接执行代码。1<2 ? alert(1):alert(2);
         多目运算符能够多层嵌套。var a =1<2?alert(1):(1>0?4:5);
      
   【位运算符、 逻辑运算符】
        &&、||、!
      && 两边都成立,结果为true
      || 两边有任意一边成立,结果为true
      && ||同时存在时,&&的优先级比||高
      
   【运算符的优先级】
       一、()
       二、! ++  --  单目运算符
       三、*  /  %
       四、>  <  >=  <=
       五、==  !=
       六、&&    注意:&& ||同时存在时,&&的优先级比||高
       七、||
       八、=  += -=  *=  /=函数

【if-else结构】
   一、结构的写法:
   if(判断条件){
    条件为true,执行if{}
   }else{
    条件为false,执行if{}
   }
   二、注意事项:
   else{}语句块。能够根据状况进行省略。
   if和else后面的{}能够省略,可是省略{},if和else后面只能跟一条语句;(因此不建议省略{})
  
   三、if的()中的判断条件,支持的状况:
   Boolean:true为真,false为假
   string:空字符串为假,全部非空字符串为真。
   Number:0为假。全部非0数字为真。
   Null/Undefined/NaN:全为假。
   Object:全为真。
  
   【多重if、阶梯if结构】
   一、结构写法:
   if(if条件一){
    条件一成立,执行操做
   }else if(条件二){
    条件一不成立&&条件二成立,执行的操做
   }else{
    上条件都不成立,执行的操做
   }
   二、多重if结构中,各个判断条件是互斥的,执行选择其中一条路执行,
   遇到正确选项并执行完之后,直接跳出结构,再也不判断后续分支
  
   【嵌套if结构】
   一、结构写法:
   if(条件一){
    条件成立
    if(条件二){
     条件一成立&&条件二成立
    }else{
     条件一成立&&条件二不成立
    }
   }else{
    条件一不成立
   }
   二、在嵌套if结构中,若是省略{},则else结构永远属于离他最近的if;
   三、嵌套结构能够多层嵌套,可是通常不推荐超过三层
    能用多重if结构通常不推荐使用多重if结构。
    
  【switch多路分支结构】
  【工做原理】首先设置表达式 n(一般是一个变量)。随后表达式的值会与结构中的每一个 case 的值作比较。
  若是存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
  一、结构写法:switch(表达式){
      case (能够是表达式):
       执行代码块 1
      break;
      case 2:
       执行代码块 2
      break;
      case 3:
       执行代码块 3
      break;
      default:
      break;
     }
  二、switch结构()中的表达式能够是各类JS支持的数据类型;
  三、switch结构在进行判断时,使用==判断;
  四、case后面的表达式能够是各类数据类型,能够是表达式,可是值要求各不相同,不然也只会执行第一个case。
  五、break跳出当前当前switch结构;缺乏break后果  从第一个正确的case项开始,执行后面的全部case和default;
  缘由:switch结构进行判断的时候,只会判断一次正确答案。当遇到正确case以后,将不会再判断后续的项目。
  六、 switch执行效率要比多重if快。在多路分支中,推荐优先使用。htm

相关文章
相关标签/搜索