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个,  * n{x,}:至少包含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("^\\w{6,12}$"); //常用 var reg2=/^\w{6,12}$/g;//定义字符长度6-12位的对象 var user="zhangeerwqeweqeeqweqweqw"; var result=reg2.test(user) alert(result); </script> 3. 内置对象  * Global对象  * 全局对象  * Math对象  * 无须初始化直接通过关键字Math调用所有的方法和属性。 4. 宿主对象  * DOM(文本对象模型)和BOM(浏览器对象模型)

猜你喜欢

转载自www.cnblogs.com/rqy0526/p/11105290.html
今日推荐