黑马程序员技术交流社区

标题: 【广州校区】 + 【原创】 +javascript [打印本页]

作者: leeao    时间: 2019-9-19 14:11
标题: 【广州校区】 + 【原创】 +javascript
一、         JavaScript的介绍1.1  javascript是什么技术?
JavaScript是一门基于对象和事件驱动的脚本语言。它的作用就是可以跟用户进行交互。
1.2. JavaScriptjava的区别
1.      Java是Sun公司的产品,而javaScript是网景(Netscape)公司的产品;
2.      JavaScript是解释型语言,而Java是编译解释型语言;
3.      JavaScript是一种弱类型的语言,而Java是一种强类型的语言;
1.2  JavaScript的特点
n  跨平台:只要有浏览器就可以运行;
n  安全性:它不能够访问计算机的本地文件系统;
1.3  JavaScript的组成
1)      ECMAScript:1997由欧洲计算机协议组织所制定一个JavaScript的标准。该标准对javascript基本的语法进行规范;
2)      BOM:BrowserObject Model 浏览器对象模型。作用:对浏览器对象进行操作。
3)      DOM:DocumentObject Model 文档对象模型。作用:对html文档对象进行操作。
二、         Javascript的基本语法2.1 引入javascript的方式
Ø  方式一:在script标签中编写js代码;
     注意:script标签可以在head或body标签中定义;
   
Ø  方式二:在js文件中编写js代码,然后再该js文件引入html中;
格式:<script type=”text/javascript” src=”js文件路径”></script>
注意:script的开始标签和结束标签不能够写在同一个标签中。
2.2 JavaScript的注释
       单行注释://注释内容
       多行注释:/* 注释内容 */
2.3 定义变量
语法格式:var 变量名 = 值;
注意事项:
1)js变量的数据类型是由它的值来决定,而且变量的类型可以变化;
2)如果存在同名变量的时候,后定义的变量会覆盖前面定义的变量;
3)var可以不写,但是建议还是加上;
2.4 查看变量类型
语法格式:typeof(变量名);
                              
2.5 变量的基本数据类型
string:字符串,可以使用双引号,也可以使用个单引号;
number:数值类型,包括整数和浮点数;
boolean:布尔类型
undefined:未定义类型
2.5.1 类型的转换
Ø  parseInt(x):把字符串数值转换成整数;
注意事项:
1)      如果字符串是数值,那么该方法就把字符串转换成number类型的数据;
2)      如果字符串包含了非数字的字符,那么该方法就会从开始位置查找,直到第一个非数字的字符为止,然后再该字符前面的内容转换成数字;
3)      如果字符串数字的第一个字符是0,那么转换的时候就会把0去掉;
4)      如果字符串数字是0x开头,那么就会转换成十六进制的数字;
Ø  parseFloat(x):把字符串数值转成小数;
无论是整数还是小数的字符串,转换之后都是number类型的数据。
2.6 运算符2.6.1 算术运算符
注意:加号除了可以作为一个运算符,还可以表示一个正数或者是字符串连接符;
2.6.2 赋值运算符
2.6.3 逻辑运算符
2.6.4 比较运算符
Ø  数字和字符串比较:
1)如果字符串是数字,那么比较的时候就会把字符串转换数字,再进行比较;
2)如果字符串包含非数字,那么字符串转换就返回一个NaN,因此,NaN与任何数字比较都是返回false;
Ø  字符串与字符串比较:
1)首先从字符串的开始位置逐个字符进行比较,直到第一个不相等的字符为止。然后再比较这两个字符的大小;
2)如果两个字符串没有找不相同的字符,那么就比较它们的长度;
2.6.5 三目运算符
语法格式:条件表达式 ? 值1 : 值2;
2.7 流程控制2.7.1 if语句
n  语法格式:if(条件) … elseif(条件) … else…
       注意:if的条件除了可以是表达式以外,还可以是任意类型的数据。
1)如果是空字符串就代表false,非空就代表true;
2)如果是非0代表true,0就代表false;
3)undefinded返回false;
2.7.2 switch语句
       语法格式:
              switch(条件) {
                     case1
                            …
                            break;
                     case2
                            …
                            break;
                     default:
                            break;
}
      
       注意:case的值除了可以是一个常量,还可以是一个变量或者是表达式。
2.8 循环2.8.1 while循环
语法格式:while (条件) { 循环体 }
需求:实现1~100的加法运算。
2.8.2 do…while循环
语法格式:do { 循环体 } while (条件);
需求:实现1~100的偶数的加法运算。
2.8.3 for循环
       语法格式:
for (初始化; 条件; 循环体后的代码) {
              循环体
}
需求:实现1~100之间的奇数的加法运算。
2.8.4 breakcontinue
       break:中止循环;
       continue:中止本次循环,继续下一次循环;
2.8.5 for-in循环
for-in循环的作用类似Java中的增强for循环。
语法格式:
for (var 索引号 in 数组) {
循环体
}
for (var 属性名 in 对象) {
循环体
}

注意:
1)使用增强for循环遍历数组的时候,遍历出来的是数组的索引值;
2)使用增强for循环遍历对象的时候,遍历出来的是对象的属性名;
2.9 函数2.9.1 函数的作用
1)      提高代码的重用性;
2)      通过函数创建对象;
2.9.2 定义函数的方式
n  方式一:
function 函数名(参数列表) { 函数体 }
注意事项:
1)函数的参数是不需要使用var关键字;
2)函数是不需要指定返回值类型,如果要返回数据就直接使用return即可;
n  方式二:定义函数变量
var 函数名 = function(参数列表) { 函数体 }
n  方式三:匿名函数
(function(参数列表){ 函数体 })(实参);
n  方式四:使用Function对象创建函数
var 函数名 = new Function(“参数1”[, “参数2”], “函数体”);
2.9.3 变量范围
Ø  全局变量:定义在函数外面的变量;
1)全局变量的作用范围:从变量的定义开始,到当前页面结束;
2)如果出现多个重名的全局变量,后面定义变量就会覆盖前面定义的变量;
Ø  局部变量:定义在函数体内的变量;
  1)局部变量的作用范围:从变量的定义开始,到函数体结束为止;
  2)不同函数中的局部变量可以出现重名;
  3)如果局部变量与全局变量出现重名,那么局部变量就会覆盖全局变量;
  4)如果在函数体中声明的变量与全局变量出现重名,那么全局变量就会被重新定义,这样就无法再访问全局变量;
  5)在函数体定义变量的时候如果没有加上var关键字,首先它会在该函数中查找是否存在该变量的声明,如果函数体中没有该变量的声明,那么它会在函数外查找是否存在该变量的声明。如果没有就会创建一个全局变量并赋值;
2.10 内置对象2.10.1 String对象
Ø  创建字符串的方式:
n  方式一:var 变量名 = “字符串”;
n  方式二:var 变量名 = newString(“字符串”);
Ø  常用的属性:
length:获取字符串长度;
Ø  常用的方法:
1)      charAt():返回指定索引值的字符串;
2)      charCodeAt():返回指定索引值的字符串的码值;
3)      concat():连接多个字符串;
4)      fontcolor():把带有 COLOR 属性的一个 HTML<FONT> 标记放置在 String 对象中的文本两端;
5)      indexOf():返回指定字符串第一次出现的索引值;
6)      lastIndexOf():返回指定字符串最后一次出现的索引值;
7)      replace():替换匹配正则表达式的字符串;
8)      split():按照字符串或正则表达式切割字符串;
9)      substr():返回指定位置开始的指定长度的子字符串;
10)  toUpperCase():把字符串中的所有字母转换成大写字母;
11)  toLowerCase():把字符串中的所有小写字母转换成小写字母;
2.10.2 Number对象
Ø  创建一个Number对象的方式:
方式一:var 变量名 = 数值;
方式二:var 变量名 = new Number(数值);
Ø  常用方法:
toString(n):把数字按照指定进制转换成字符串;
toFixed(n):指定需要保留的小数位,并且可以进行四舍五入;
2.10.3 Date对象
Ø  创建Date对象的方式:
dateObj = newDate():获取系统的当前时间;
dateObj = new Date(dateVal):获取指定毫秒数所对应的时间;
dateObj = newDate(year, month, date[, hours[, minutes[,seconds[,ms]]]]):指定年月日时分秒来创建一个Date对象;
Ø  常用方法:
ü  getYear():获取当前时间到1900年之间相隔多少年;
ü  getFullYear():获取本地时间的年份;
ü  getMonth():获取本地时间的月份;
ü  getDate():获取本地时间的月份的日期;
ü  getHours():获取本地时间的小时;
ü  getMinutes():获取本地时间的分钟;
ü  getSeconds():获取本地时间的秒数;
ü  toLocaleString():获取系统时间;
2.10.4 Math对象
作用:提供一些数学工具的属性和方法。
Ø  常用属性:
PI:获取圆周率;
Ø  常用方法:
ü  ceil():向上取整;
ü  floor():向下取整;
ü  random():生成0-1之间的随机数,包括0但不包括1;
ü  round():四舍五入;
2.10.5 Array对象
Ø  创建数组的方式:
方式一:var 数组名 = new Array();  //创建一个空数组
方式二:var 数组名 = new Array(length);
       方式三:var 数组名 = newArray(元素1, 元素2, …);
       方式四:var 数组名 = [元素1, 元素2, …];
Ø  js数组与Java数组的区别:
js数组的长度是可变的,而且js数组可以存储任意类型的数据。
java数组的长度是固定的,而且java数组只能够存储一种类型的数据,除了Object以外。
Ø  常用的方法:
ü  concat():把多个元素添加到该数组的末尾并返回一个新的数组;
ü  join():指定分隔符把数组中的所有元素拼接成一个字符串并返回;
ü  pop():删除并返回数组中的最后一个元素;
ü  push():往数组添加新的元素并返回数组的长度;
ü  reverse():反转数组的元素;
ü  shift():移除并返回数组中的第一个元素;
ü  slice():返回数组中指定开始和结束位置之间元素所组成的数组(包头不包尾);
ü  sort():按照指定的规则对数组进行排序;
ü  splice():移除指定位置的一个或多个元素,然后在移除位置插入新的元素,并返回由移除元素所组成的数组;






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2