08-JavaScript基础

Posted rqy0526

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08-JavaScript基础相关的知识,希望对你有一定的参考价值。

今日知识

1. javascript基础
2. 案例
3.总结

JavaScript介绍:

* 概念:一门客户端脚本语言
        * 运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎
        * 脚本语言:不需要编译,直接就可以被浏览器解析执行
    
    * 功能:
        * 可以来增加用户用户和html页面交互过程,可以控制html元素,让页面有些动态的效果。
    
    * JavaScript发展
        1. 1992,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C--	,后来更名为:ScriptEase
        2. 1995年,Netscape(网景)公司,开发了一门客户端脚本语言:LiveScript。后来,请来SUN公司的专家,修改LiveScript,命名为JavaScript
	    3. 1996年,微软抄袭JavaScript开发出JScript语言
	    4. 1997年,ECMA(欧洲计算机制造商协会),制定出客户端脚本语言的标准:ECMAScript,就是统一了所有客户端脚本语言的编码方式。

	    * JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)

基本语法

* ECMAScript:客户端脚本语言标准
	    1. 基本语法
	        1. 与html结合
	            1. 内部JS:
	                * 定义<script>,标签体内就是js代码
	            2. 外部JS:定义<script>,通过src引入js文件
	            * 注意
	                1. <script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
				    2. <script>可以定义多个。
		    2. 注释
		        1. 单行注释://
		        2. 多行注释 /*注释内容*/
		    3. 数据类型
		        1. 原始数据类型(基本数据类型)
		            1. number:数字。 整数/小数/NaN(not a number 一个不是数字的数字类型)
				    2. string:字符串。 字符串  "abc" "a" ‘abc‘
			    	3. boolean: true和false
			    	4. null:一个对象为空的占位符
				    5. undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
		        2. 引用数据类型:
		            * 本地对象:
		                * Array对象:  var mobile =new Array();
		                * Date()对象: var date=new Date();
		                    * date.getFullYear()获取当前年份
		                    * date.getMonth()获取当前月份
		                * RegExp对象:正则表达式
		            * 内置对象
		                * Global对象
		                * Math对象
		            * 宿主对象
		                * DOM(文本对象模型)和BOM(浏览器对象模型)
		        3. 类型转换
		            1. 转化为字符串
		                *   var x=true;
		                    var result=x.toString()//返回为true
                        * 使用科学计数法会返回计算后的十进制完整数
                            * 例如:var x=1.25e8;
                                    var result=x.toString();//结果为125000000
                        * 基数模式下,填入指定参数
                            * 例如:var x=10;
                                    var result=x.toString(2);//声明将原始数据转换为二进制,结果为"1010"
                                    var result=x.toString(8);//声明将原始数据转换为八进制,结果为"12"
                                    var result=x.toString(16);//声明将原始数据转换为十六进制,结果为"A"
		            2. 转换为数字
		                * praseInt()方法
		                    * var x="123hello";  
		                    * var result=praseInt(x);//结果为123,遇到NaN(非数字)就会停止检查
		                    * var result=praseInt(x,2);//表示原始数据为二进制。
		                    * var result=praseInt(x,8);//表示原始数据为八进制。
		                    * var result=praseInt(x,16);//表示原始数据为十六进制。
		                    * 特殊情况:var x="010";
		                    *           result=praseInt(x);//不强调进制,会默认按8进制算
		                * praseFloat():使用方法和上面一样,遇到NaN(非数字)就会停止检查,只接受十进制的表示,
		            3. 强制类型转换Type Casting
		                * var result=Boolean("hello");//非空字符串返回true
		                * var result=Boolean("");//返回false
		                * var result=Boolean(0);//0 返回false
		                * var result=Boolean(2356);//非0返回true
		                * Number函数:
		                *       var x=Number("2.9");//返回值为浮点型2.9
		                *       var x=Number(true);//返回值为1
		                *       var x=Number(false);//返回值为0
		                *       -- 当需要返回的是为null,和undefined的时候, Number()函数分别返回为0,和NaN.
		                *       当需要转换的类型为其他自定义对象的时候,返回值都为NaN.
		            

		    4. 变量
		        1. 变量:一小块存储数据的内存空间
		        2. Java语言是强类型语言,而JAVAScript是弱类型语言
		             * 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
				    * 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。
				3. 语法:var 变量名=初始化值;
				4. typeof运算符:获取变量类型
				    * null运算获得是object
		    5. 运算符
		        1. 一元运算符:
		        2. 算符运算符:+-*/%
		        3. 赋值运算符:= += -+....
		        4. 比较运算符:> < >= <= == ===(全等于)
		            1. 类型相同直接比较
		            2. 类型不同:先进行类型转换,在比较。
		                * ===:全等于,类型不一样,直接返回false。
		            3. 字符串比较
		                * 如果相同位置上是数字,直接按照数字大小进行比较
		                *    位数不同的也是按照只对相同位置的数字大小进行比较
		                *    比如:x="10",x1="9",result=x1>x;//返回true
		                * 字符串中是字母,会按照字母的ASCLL值进行挨个比较
		                * x.toLowerCase();所有字母转换为小写
		                * x.toUpperCase();所有字母转换为大写
		            4. 字符串和数字比较
		                * 先进行强制类型转换,在比较。
		        5. 逻辑运算符
		            1. !,&& ,|| 将其他类型转换为Boolean
		            2. number:0或NaN为假,其他为真
                    3. string:除了空字符串(""),其他都是true
                    4. null&undefined:都是false
                    5. 对象:所有对象都为true
		    6. 流程控制语句
		       1. if...else...
		       2. switch:
				* 在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7)
					* switch(变量):
						case 值:
				* 在JS中,switch语句可以接受任意的原始数据类型
			    3. while
			    4. do...while
		    	5. for
		    	6. for-in
		    	    * 用于循环遍历是对象的所有属性或方法
		    	    * for(x in Object)
		    	       // x是变量,每次循环按照顺序获取对象的一个属性和方法名。
                        msg+=Object[x];//Object[X]指的是对应的属性值。
		    	    
            7. JS特殊语法:
				1. 语句以;结尾,如果一行只有一条语句则 ;可以省略 (不建议)
				2. 变量的定义使用var关键字,也可以不使用
            		* 用: 定义的变量是局部变量
	                * 不用:定义的变量是全局变量(不建议)
            8. 实例:九九乘法表
                代码:<!DOCTYPE html>
                        <html lang="en">
                        <head>
                            <meta charset="UTF-8">
                            <title>九九乘法表</title>
                            <style type="text/css">
                                td
                                    border:2px solid darkgray ;
                                
                            </style>
                            <script>
                                document.write("<table  align=‘center‘>");
                                //完成for循环嵌套
                                for(var i=1;i<=9;i++)
                                    document.write("<tr>");
                                    for(var j=1;j<=i;j++)
                                        document.write("<td>");
                                        //输出
                                        document.write(i+"*"+j+"="+(i*j)+"&nbsp;&nbsp;&nbsp;");
                                        document.write("</td>");
                                    
                                   // document.write("<br>");
                                    document.write("</tr>");
                                
                                document.write("</table>");
                            </script>
                        </head>
                        <body>
                        
                        </body>
                        </html>

基本对象(引用数据类型)

1. Function:函数对象
    1. 创建 function 方法名(形式参数列表)
        方法体
    
    2. 特点:
        * 方法定义:形参的类型不用写,返回值类型也不写。
        * 方法是一个对象,如果定义方法名称一样的函数,会覆盖
        * 在js中,方法的调用只与方法的名称有关,和参数列表有关
        * 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有实际参数
2. 本地对象:
    1. Array对象:  var mobile =new Array();
        * mobile [0]="nihao";
        *  方法
                join(参数):将数组中的元素按照指定的分隔符拼接为字符串
                push()	向数组的末尾添加一个或更多元素,并返回新的长度。
    2. Date()对象: var date=new Date();
        * date.getFullYear()获取当前年份
        * date.getMonth()获取当前月份
        * date.getDate();返回几号
        * date。getDay():返回星期几
    3. RegExp对象:正则表达式对象
        1. 正则表达式:定义字符串的的规则
            * 单个字符:[]
            *   如[a],[ab] [a-zA-Z0-9]
            *  特殊字符串代表的的特殊含义
            *       \d:查找哦数字字符
            *       \w:查找单词字符
            *  量词字符:
            *       ?:表示出现0次或者1次 的
            *       *:代表0个或者多个
            *       +:至少包含一个以上的字符
            *       x,y:包含x个,或者Y个,
            *       nx,:至少包含X个以上的字符
            * 开始结束符号:
            *           * ^n:查找以n开头的字符串
            *           * $n:查找以n结束的字符串
        2. 正则表达式对象:
            1. 创建
                * var reg=new RegExp("正则表达式");
                * var reg=/正则表达式/;
            2. 方法
                * exec():该方法适合具有参数的情况   var result=RegExpObject.exec(String s);     每次按照顺序从文本找到相应的字符串,直到 全部找完,再次运行就会返回null.
                * test():用于检索是否包含指定字符串,返回值布尔类型。
                *  <script>
                        var reg=new RegExp("^\\w6,12$");
                        //常用
                        var reg2=/^\w6,12$/g;//定义字符长度6-12位的对象
                        var user="zhangeerwqeweqeeqweqweqw";
                
                        var result=reg2.test(user)
                        alert(result);
                    </script>
3. 内置对象
    * Global对象
        * 全局对象
    * Math对象
        * 无须初始化直接通过关键字Math调用所有的方法和属性。
4. 宿主对象
    * DOM(文本对象模型)和BOM(浏览器对象模型)

以上是关于08-JavaScript基础的主要内容,如果未能解决你的问题,请参考以下文章

08JavaScript对象

[2016-02-08][javascript][if语句]

[2016-02-08][javascript][数据类型]

08 javascript函数

HaaS轻应用(JavaScript)总览

[2016-02-08][javascript][数据类型的隐式转换]