js简介
js是什么
1 2 3 4 5 6 7 8 9
| js是可以嵌入到html中,是基于对象和事件驱动的脚本语言。 基于对象 js中会把所有的东西看成对象 事件驱动 js驱动 都是通过各种驱动 脚本语言 java需要jvm虚拟机进行编译 js不需要编译 直接可以使用。 特点: 1.有交互性 2.安全性 js 不能访问本地磁盘 3.跨平台 可以兼容不同的浏览器
|
js能做什么
1 2
| 1.js能动态操作(curd)html和css的代码 2.动态校验数据
|
js被引入的方式
内嵌脚本
1 2
| <input type="button" value="button" onclick="javascript:alert('xxxxxx')"/>
|
内部脚本
1 2 3
| <script type="text/javascript"> alert('xxxxxx'); </script>
|
外部脚本
1 2 3
| 首先创建一个js文件,将js代码写到文件中,在html标签中添加 <script src="引入js即可"> ps:【js加载优化!】 可以放在任何位置,但是在不影响html功能前提下,越晚加载越好。
|
js基本语法
注解
输出
1 2 3
| console.log() document.write() alert();
|
变量
变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
变量必须以字母开头
变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
变量名称对大小写敏感(y 和 Y 是不同的变量)
弱引用类型
1 2 3 4 5 6 7 8 9
| var x = 5; var y = 'hello' var b = true 声明多个变量 var x =6 ,x = 8;
var age=24; var age; console.log(age)
|
原始数据类型
主要使用typeof 验证类型, typeof 数据、typeof(数据);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 1.number 数字类型 Int float 2.string 字符串类型 "" ''没区别 3.boolean 布尔类型 true 1 false =0; 4.null 空类型 object 5.undefined 未定义类型 进行数据初始化 6.NAN parseInt(boolean)
|
引用数据类型(创建对象) 自定义类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| java var obj = new Object(); var obj = new Object(); obj.nam = "zhansan" obj.age = 18; obj.say = function(){ alert(this.nam+"说他已经"+this.age+"啦!"); } obj.say();
var Person= function(){ var name = "李四"; var age = 11; var say =new function(){ alert(name+age); } } var p = new Person(); p.say();
var pp = {name:"lisi",age:18,say:function(){ alert(this.name); } }; pp.say();
|
运算符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| 1.赋值运算符 = var i = 5;
2.算数运算符 +-*/% "11"*"123" 可以出值 "11"*"11xx" 报错 +遇到字符串的时候就变成了连接符 其他都是把字符串转成整 数类型,进行处理 如果出现123xx xx不会自动转 1234/100*100 3.逻辑运算符 && || 4.比较运算符 < > <= >= != == ===全等 1==“1” true 1==="1" false ===全等判断类型
5.三元运算符 >:? x>y ? x-y:x+y 6.void运算符 <a href="javascript:void(0)"></a>
7.类型运算符 typeof 判断数据类型 instanceof 判断数据类型
|
逻辑语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| 1. if - else 2. for for in for/in 语句循环遍历对象的属性: 实例 var person={fname:"John",lname:"Doe",age:25};
for (x in person) { txt=txt + person[x]; }
for/变量数组 var arr = ["","","","",""]; 3. switch
4. while
5.try/catch function message() { try{ adddlert("Welcome guest!"); }catch(err){ txt="本页有一个错误。\n\n"; txt+="错误描述:" + err.message + "\n\n"; txt+="点击确定继续。\n\n"; alert(txt); } }
<input type="button" value="查看消息" onclick="message()" />
|
js内建对象
Number
1 2 3 4 5 6
| 1.创建方式 var number = new Number(var); var number = Number(var); 方法: toString() 转成字符串 valueOf() 转成number类型
|
Boolean
1 2
| var boolean = new Boolean(var); Boolean(var);
|
String
1 2 3 4 5 6 7 8 9 10 11 12 13
| 创建方式: var str = new String(s); var str = String(s); 属性和方法: length:字符串的长度 charAt():返回索引字符 charCodeAt:返回索引字符unicode indexOf():返回字符的索引 lastIndexOf();逆向返回字符的索引 split();将字符串按照特殊字符切割成数组 substr():从起始索引号提取字符串中指定数目的字符 substring():提取字符串中两个指定的索引号之间的字符 toUpperCase();转大写
|
Array
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 创建方式: new Array(); 创建一个空数组 new Array(size); 创建一个指定大小的数组 但是超出还可以加 new Array(element0, element0, ..., elementn); 创建一个数组 直接添加元素 var array = [1,2,3,4]; var array = [];创建一个空数组
方法: lenght join() 相当于 splite逆向 pop() 删除并返回最后一个元素 push() 向末尾放一个元素并返回长度 revserse()翻转数组 sort();
|
Date
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 创建方式: var myDate=new Date() var myDate=new Date(毫秒值) 毫秒值代表1970到现在的时间 var Future = new Date(2017, 4, 1, 12, 00, 00); 属性和方法: getFullYear() 获取年 getMonth()获取月 0-11 getDate() 获取日 1-31 getDay(); 星期 0-6 getTime() 返回 1970 年 1 月 1 日至今的毫秒数。 toTimeString() 把 Date 对象的时间部分转换为字符串。 toString() 获取时间 toLocaleString() 获取本地时间
var date = new Date();
|
Math
Math 对象并不像 Date 和 String 那样是对象的类,
因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,
不是某个对象的方法。您无需创建它,
通过把 Math 作为对象使用就可以调用其所有属性和方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| 属性: Math.Pi E 返回算术常量 e,即自然对数的底数(约等于2.718)。 1 3 LN2 返回 2 的自然对数(约等于0.693)。 1 3 LN10 返回 10 的自然对数(约等于2.302)。 1 3 LOG2E 返回以 2 为底的 e 的对数(约等于 1.414)。 1 3 LOG10E 返回以 10 为底的 e 的对数(约等于0.434)。 1 3 PI 返回圆周率(约等于3.14159)。 1 3 SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)。 1 3 SQRT2 返回 2 的平方根(约等于 1.414)。 1 3
abs(x) 返回数的绝对值。 1 3 acos(x) 返回数的反余弦值。 1 3 asin(x) 返回数的反正弦值。 1 3 atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 1 3 atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 1 3 ceil(x) 对数进行上舍入。 1 3 cos(x) 返回数的余弦。 1 3 exp(x) 返回 e 的指数。 1 3 floor(x) 对数进行下舍入。 1 3 log(x) 返回数的自然对数(底为e)。 1 3 max(x,y) 返回 x 和 y 中的最高值。 1 3 min(x,y) 返回 x 和 y 中的最低值。 1 3 pow(x,y) 返回 x 的 y 次幂。 1 3 random() 返回 0 ~ 1 之间的随机数。 1 3 round(x) 把数四舍五入为最接近的整数。 1 3 sin(x) 返回数的正弦。 1 3 sqrt(x) 返回数的平方根。 1 3 tan(x) 返回角的正切。 1 3 toSource() 返回该对象的源代码。 1 - 3 valueOf() 返回 Math 对象的原始值。 1 4
|
RegExp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| 创建方式 new RegExp(pattern); var reg = /^正则规则$/;
规则的写法:校验和约束字符串 [0-9] \d 代表数字 [A-Z] 大写字母 [a-z] 小写字母 [A-z] 是字母即可 \w 查找单词字符 \W 查找非单词字符 \s 空白字符 \S 非空白字符 n+ 至少出现一次 n* 出现0次或者多少 n? 出现0次获取1次 {5}出现五次 {2-8} 出现2-8次
属性方法: 校验邮箱 var reg = /^[A-z]+[A-z0-9_-]$/;
|
js的函数
js函数的定义方式
普通的方式
1 2 3
| 语法: function 函数名(参数列表){ }
|
匿名函数
1 2 3
| var method = function(参数列表){} (function(){ alert(arguments[0]); }("aa"));
|
对象函数
1 2 3 4
| 语法 new Function(params...,函数体); 注意参数名称必须使用字符串形式,最后一个默认是函数体 var fn = new Function("a","b","alert(a+b);"); alert(fn(3,4));
|
函数的参数和返回值
1 2 3 4
| 1.形参没有返回值 2.形参和实参的个数不一定一样 3.arguments 内置对象 4.在定义函数的时候不必定义返回值直接通过return即可进行返回
|
给函数设置默认参数值