今天学习js做了些总结,分享给大家
一、
1.javascript的作用
是基于对象和事件驱动的语言,应用于客户端
基于对象:提供好了很多对象,可以直接拿过来使用,不需要创建
事件驱动: html做网站静态效果,javascript动态效果,,例如:按钮的单击
客户端:专门指的是浏览器
2.js的特点
(1)交互性 - 信息的动态交互
(2)安全性 - js不能访问本地磁盘的文件
(3)跨平台性 - java里面跨平台性,虚拟机
- 只有能够支持js的浏览器,都可以运行
3.javascript和java的区别(雷锋和雷峰塔)
(1)java是sun公司,现在oracle;js是网景公司
(2)JavaScript 是基于对象的,java是面向对象
(3)java是强类型的语言,js是弱类型的语言
- 比如java里面 int i = "10";
- js: var i = 10; var m = "10";
(4)JavaScript只需解析就可以执行,而java需要先编译成字节码文件,再执行
4.javascript的组成
(1)ECMAScript ---有ECMA组织制定的js的语法,语句.....
ECMA : 欧洲计算机协会
(2)BOM - broswer object model: 浏览器对象模型
(3)DOM- document object model:文档对象模型
二、js与html结合方式(*******)
第一种:- 使用一个标签 <script type="text/javascript"> js代码; </script>
第二种:- 使用script标签,引入一个外部的js文件
(1)创建一个js文件1.js,写js代码
(2)引入:<script type="text/javascript" src="1.js"></script>
注意: ** 使用第二种方式时候,就不要在script标签里面写js代码了,不会执行。
三、js原始类型和声明变量(*******)
定义变量 :都使用关键字 var 格式: var 变量名= 变量值
五种原始类型
string: 字符串 var str = "abc";
number:数字类型 var m = 123;
boolean:true和false var flag = true;
null: 空对象 获取对象的引用,null表示对象引用为空 ,所有对象的引用也是object
undefined:未定义 两种情况会出现:
1.定义一个变量,没有赋值
2. 对象属性不存在
typeof( 变量名 ) -- > 获取变量的数据类型
四、js的运算符(*******)
1.js里面不区分整数和小数
2.字符串的相加和相减的操作
NaN --> 非数值 ,例如 字符串参与 除法运算的结果。
var str = "abc"; //提示NaN:表示不是一个数字
alert(str+1); //在java里面操作的结果是 4561 ,在js里面还是 4561
alert(str-1); //相减时候,执行减法的运算
3.boolean类型也可以操作
****如果设置成true,相当于这个值是1
*** 如果设置成false,相当于这个值是0
4.== 和 === 区别
== :比较的值. 而且可以进行简单的类型转换.
===:值相等 而且 类型也要相等.
5.引入知识
直接向页面输出的语句(可以把内容显示在页面上)
* document.write("aaa");
*document.wirte("<hr/>");
** 可以向页面输出变量,固定值和html代码
五、js的语句 (*******)
if判断语句’
=:表示赋值 ==:表示判断
switch语句
结构同java ,在js里面switch语句什么类型都支持都支持
循环语句 for while do-while
六、js数组 (*******)
什么是数组?
- 使用变量,var m = 10;
- java里面的数组 定义 int[] arr = {1,2,3};
定义方式(三种)
第一种: var arr = [1,2,3]; var arr = [1,"4",true];
第二种:使用内置对象 Array对象
var arr1 = new Array(5); //定义一个数组,数组的长度是5
arr1[0] = "1";
第三种:使用内置对象 Array
var arr2 = new Array(3,4,5); //定义一个数组,数组里面的元素是3 4 5
* 数组里面有一个属性 length:获取到数组的长度
* 数组可以存放不同的数据类型的数据
七、js的函数(动态函数和匿名函数) (*******)
在js里面定义函数(方法)有三种方式
(1)使用到一个关键字 function
function 方法名(参数列表) {
方法体;
返回值可有可无(根据实际需要);
}
(2) 匿名函数
var add = function(参数列表) {
方法体和返回值;
}
(3) 动态函数(用的少,了解)
使用到js里面的一个内置对象 Function
var add = new Function("参数列表","方法体和返回值");
八、js的全局变量和局部变量(*******)
全局变量:在script标签里面定义一个变量,这个变量在页面中js部分都可以使用
- 在方法外部使用,在方法内部使用,在另外一个script标签使用
注意: 当定义变量没有使用var ,默认变量是全局的
局部变量:在方法内部定义一个变量,只能在方法内部使用
- 如果在方法的外部调用这个变量,提示出错
- SCRIPT5009: “nn”未定义
使用浏览器的控制台 (按快捷键 F12)
注意:局部变量和全局变量重名,优先选择局部变量
九、js的函数重载(*******)
JS中没有重载
可以模拟重载的现象,利用 js 的一个数组对象
js函数中 参数 可以看做一个数组 多个函数 会存入数组中 并且按照下面的要求 来返回或应用数值
js对象
一、js的String对象(****)
string 对象用于处理文本(字符串)。
string 对象属性:length 字符串的长度
string对象的方法:
与html相关的方法
big() 用大号字体显示字符串。
bold() 使用粗体显示字符串
fontcolor() 使用指定的颜色来显示字符串。
fontsize() 使用指定的尺寸来显示字符串。
与java相似的方法
charAt(下标位置)返回在指定位置的字符。
indexOf(子字符串) 检索字符串。
substring(开始下标,结束下标) 提取字符串中两个指定的索引号之间的字符。
substr(开始下标,截取长度) 从起始索引号提取字符串中指定数目的字符。
split(分割符) :用于把一个字符串分割成字符串数组。
二、js的Array对象 (****)----数组对象
java的数组是不可改变长度的 ,js的数组可以改变长度
length : 设置或返回数组中元素的数目
concat():连接两个或更多的数组,并返回结果。
join():把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
push():向数组的末尾添加一个或更多元素,并返回新的长度。
pop():删除并返回数组的最后一个元素
reverse():颠倒数组中元素的顺序
三、js的Date对象 (****)
Date 对象用于处理日期和时间。
创建 Date 对象的语法:var myDate=new Date()
toLocaleString() :根据本地时间格式,把 Date 对象转换为字符串。
toLocaleDateString() :根据本地时间格式,把 Date 对象的日期部分转换为字符串
getDate() :从 Date 对象返回一个月中的某一天 (1 ~ 31)
getDay() :从 Date 对象返回一周中的某一天 (0 ~ 6)
getMonth() :从 Date 对象返回月份 (0 ~ 11)
getFullYear() :从 Date 对象以四位数字返回年份
getTime() :返回 1970 年 1 月 1 日至今的毫秒数
parse() :返回1970年1月1日午夜到指定日期(字符串)的毫秒数
四、js的math对象 (****)
ceil(x) 对一个数进行上舍入。
floor(x) 对一个数进行下舍入。
round(x) 把一个数四舍五入为最接近的整数
pow(x,y) 返回 x 的 y 次幂
random() 返回 0 ~ 1 之间的随机数
五、js的全局函数 (****)
全局属性和函数可用于所有内建的 JavaScript 对象
eval() : 执行js代码(如果字符串是一个js代码,使用方法直接执行)
encodeURI() :对字符进行编码 该方法不会对 ASCII 字母和数字进行编码,
也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )
decodeURI() :对字符进行解码
/*
encodeURIComponent() :对字符进行编码
请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询 字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号
decodeURIComponent():可对 encodeURIComponent() 函数编码的 URI 进行解码。
*/
isNaN():判断当前字符串是否是数字 如果是数字,返回false 如果不是数字,返回true
parseInt():类型转换
(1)js里面不存在重载。
(2)但是可以通过其他方式模拟重载的效果 (通过aruguments数组来实现)