JavaScript day(1)

一、JavaScript与Html结合方式

1.1 JavaScript代码写在Html文件内部

定义<script>标签,标签里书写JavaScript代码。
注意:<script>标签定义的位置,会影响执行顺序

1.2 JavaScript代码写在Html文件的外部

定义<script>标签,通过src属性导入外部js文件

二、ECMAScript规范(语法)

2.1常量

2.1.1 Java中的基本数据类型(四类八种)

整型byte 、short 、int、 long
浮点型float、double
布尔型boolean
字符型char

2.1.2 JavaScript中的基本数据类型(五类)

number类型数字类型,包含整数和小数和 NaN(非数)
string类型字符串和字符类型
boolean类型true 和 false
null类型空类型。对象的占位符
undefined类型未定义,如果一个变量没有初始化值,默认为undefined

2.2 变量

  • 使用 var定义变量 var i = “abc”;
  • js是一门弱类型语言:定义变量时,不需要规定其数据类型。
  • typeof运算符:获取变量的数据类型
<script type="text/javascript">
		var a = 3;
		alert(typeof a);
</script>

输出结果: number
  • var关键字如果不书写,该变量则为全局变量

2.3 js中的自动类型转换

在js中,如果传递给运算符的值,和运算符想要接受的 值 的类型不匹配,则会自动类型转换
例如:下面需要的是数组类型,则在进行运算时将a变量转换为number类型。

<script type="text/javascript">
		var a = "3";
		document.write(a-1)
</script>
	
输出结果:2

2.4 js中基本数据类型之间的转换

2.4.1其他类型转为number

  • string:将字符串的字面值,转为number,如果字面值不是数字,则转为NaN
  • boolean: true转换为为1 false转换为0

2.4.2 其他类型转boolean

  • number:非0为true,0和NaN为false,
  • string: 除了空字符串(""),其他都是true
  • null 和 undefined:转为false
  • 对象:所有对象都为true

2.5 js中的运算符

2.5.1 比较运算符

  • NaN参与的运算,结果都为fasle,除了(!=)
  • 字符串比较小大:如果长度一致按照字典顺序比较 ,长度不一致,那谁的长度长那就谁大
  • ===(全等于) :全等于比较时,先比较数据类型,如果类型不一致,直接返回false
  • ==(等于):等于比较时看字面值
<script type="text/javascript">
		var a = "3";
		var b = 3;
		document.write(a == b);
		document.write("<hr>");
		document.write(a === b);
	</script>
	
结果:
true
-------------------------
false

2.5.2 逻辑运算符

&& 和||和!

2.5.3 算术运算符

加减乘除%(取余)
注意:NaN 参与数学运算 结果都为NaN

2.5.4 赋值运算符

= += …

2.5.5 三元运算符

表达式 ? 值1 : 值2;

2.5.6 void运算符

  • 拦截返回值,一般结合a标签一起使用
  • 注销a标签跳转功能,保留可被点击的功能
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<a href="javascript:void(0) " onclick="exit();">一个链接</a>
	</body>
</html>

结果:

一个链接

如果不加的话:

三、Function(参数): 代表函数

3.1 函数的创建方式:

  • var fun = new Function(“方法体”,“参数列表”);
  • function 方法名称(形参列表){方法体}
  • var fun = function(){}
<script type="text/javascript">
		function fun(a, b, c) {
			document.write(a + " " + b + " " + c);
		}
		fun(1, 2, 3);
</script>

结果:
1 2 3

3.2 函数的属性:

length:形参的个数

3.3 函数的使用:

函数名称(实参列表);

3.4 函数的特点:

  • 函数的调用,只与函数名称有关,与实参列表无关
  • 函数内部有内置对象 arguments 封装实参数组
<script type="text/javascript">
		function fun() {
			document.write(arguments[0] + " " + arguments[1] + " " + arguments[2]);
		}
		fun("Java", "my", "love");
</script>

结果:
Java my love

四、 js中的对象:

4.1 js中对象的特点

  • js是一门基于对象的语言
  • 基于对象:不能由原生的对象派生出新的对象。换句话说,不存在继承关系

4.2 JS中的内置对象

4.2.1 String 对象

4.2.1.1 定义方式

定义方式1: String str=new String(“abckdddd”);
定义方式2:var str=“我爱你爱你”;

4.2.1.2 属性

length属性可以求字符串的长度

4.2.1.3 常用方法:
  • charAt()
    返回在指定位置的字符。

  • concat()
    连接字符串。

  • indexOf()
    根据字符检索此符在字符串中的索引。

  • lastIndexOf()
    从后向前搜索字符串。

  • substring()
    提取字符串中两个指定的索引号之间的字符。(含头不含尾)

  • toLowerCase()
    把字符串转换为小写

  • toUpperCase()
    把字符串转换为大写。

  • replace()
    替换字符串。
    参1:被替换的字符/或字符串 参数2:替换成哪个字符/或字符串

  • split()
    把字符串分割为字符串数组。

  • trim()
    去除字符串两端的空格

4.2.2 Number对象

4.2.2.1 定义方式
  • var num=new Number(555.6666);
  • var num1=Number(5694);
4.2.2.2 方法:
  • toString()
    把数字类型转成字符串类型
  • toPrecision()
    把数字格式化为指定的长度。也就是小数后面保留几位

4.2.3 Date 对象

4.2.3.1 定义方式

var myDate=new Date();

4.2.3.2 方法:
  • getTime()
    获取从1970-01-01 00:00:00 到当前的毫秒值

  • toLocaleString()
    将时间转化成本地格式 利于阅读

4.2.4 Math 对象

4.2.4.1 特点

该对象不需要创建 直接对象名点上方法

4.2.4.2 方法
  • Math.random()
    随机产生0----1 之间的随机数 var num=Math.random()*100;

  • Math.round(2.36)
    对小数进行四舍五入 得到一个整数 var n=Math.round(Math.random()*100);

  • Math.min(15,25)
    取最小值

  • Math.max(15,25)
    取最大值

  • Math. abs(-2)
    返回数的绝对值。

  • Math.floor(2.6)
    向下取整

  • Math.ceil(3.82)
    向下取整

4.3.5 数组对象:

4.3.5.1定义方式
  • var arr=new Array(2,6,8);
  • var arr1=[6,“a”,6];
var array = new Array(1,2,4,"sa","asd");
var array1 = [array, 1, 3, 4];
document.write(array1[0]);

结果:
1,2,4,sa,asd
4.3.5.2 属性

length 数组的长度

4.3.5.3 特点
  • 在js中数组可以存储任意类型元素
  • 在js中数组的长度可变
4.3.5.4 方法
  • concat()
    连接两个或更多的数组,并返回结果。
var array = new Array(1,2,4,"sa","asd");
var array1 = ["sd", 1, 3, 4];
document.write(array.concat(array1));

结果:
1,2,4,sa,asd,sd,1,3,4
  • join()
    把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
var array = new Array(1,2,4,"sa","asd");
document.write(array.join("-"));

结果:
1-2-4-sa-asd
  • pop()
    删除并返回数组的最后一个元素;
var array = new Array(1,2,4,"sa","asd");
document.write(array.pop());

结果:
asd
  • push()
    向数组的末尾添加一个或更多元素,并返回新的数组长度。
var array = new Array(1,2,4,"sa","asd");
document.write(array.push("asd", 2));

结果:
7
  • reverse()
    颠倒数组中元素的顺序。
  • sort() (默认字典顺序排序)
var array = new Array(1,12,4,"sa","asd");
document.write(array.sort());

结果:
1,12,4,asd,sa
  • shift()
    删除并返回数组的第一个元素
var array = new Array(1,12,4);
document.write(array.shift());
结果:
`
  • splice(var n)

  • 将指定索引处到末尾处的元素以新的数组的形式返回,原数组剩下索引处前的元素。

var array = new Array(1,12,4);
document.write(array.splice(1).join("-"));
document.write("<br>">;
document.write(array);
var judge = (array.splice(1) instanceof Array);
document.write("<br>");
document.write(judge);
结果:
12-4
1
true
  • 添加新的元素
  • 参数一:要删除元素的索引位置
  • 参数二:要删除的元素的个数
  • 参数三~参数n:要添加的元素
var array = new Array(1,12,4,2,3,2,3,5);
var s = array.splice(2,3,4,23,23,43);
document.write(s);
document.write("<br>");
document.write(array);    

结果:
4,2,3
1,12,4,23,23,43,2,3,5
  • toString()
    把数组转换为字符串,并返回结果
var array = new Array(1,12,4,2,3,2,3,5);
document.write(array.toString());
结果:
1,12,4,2,3,2,3,5
4.3.5.5 排序
  • 默认排序方式:字典顺序
  • 要想实现自己的比较方式,需要传入比较器方法对象
function compare(a, b) {
		return a-b;
}
var array = new Array(1,12,4);
document.write(array.sort(compare));
}

结果:
1,4,12

4.3.6 Global全局方法对象

4.3.6.1 特点

该对象中的方法调用,不需要对象的引用,可直接使用

4.3.6.2 方法
  • isNaN()
    检查某个值是否是NaN。
  • parseInt()
    解析一个字符串并返回一个整数。
    从左向右依次查找,每一位是否是数字,直到遇到不是数字为止。将前边的值转为数字

4.3.7 RegExp 正则表达式对象

4.3.7.1RegExp 常用语句
^开头
$结尾
*0或者多个
+1或者多个
0或者1个
{n}就是n个
{n,}至少n个
{n,m}最少n个,最多m个
\d任意数字
\D任意非数字
\s任意空白
\S任意非空白
.任意字符
4.3.7.2 正则表达式对象的创建
  • var reg = new (pattern, attributes)
var str = "32ksdjo2 678 h";
var reg = new RegExp("[0-9]{3}",'g');
document.write(reg.test(str));

结果:
true
  • var reg = / pattern / attributes
var str = "32ksdjo2 678 h";
var reg = /[0-9]{3}/g;
document.write(reg.test(str));

结果:
true
4.3.7.3 常用方法
  • match()
    找到一个或者多个正则表达式的匹配
var str = "i love java, java love  javal me, too";
var conquence = str.match(new RegExp("java",'g'));
document.write(conquence);

结果:
java,java,java
  • replace()
    替换与正则表达式匹配的子串
var str = "i love java, java love  javal me, too";
var conquence = str.replace(new RegExp("java",'g'),"c++");
document.write(conquence);

结果:
i love c++, c++ love c++l me, to
  • split()
    按照正则表达式分割字符串
var str = "i love java, java love  javal me, too";
var conquence = str.split(new RegExp(" "));
document.write(conquence);

结果:
i,love,java,,java,love,,javal,me,,too
  • exec()
    检索字符串中指定的值。返回找到的值,并确定其位置。
    如:输出字符串中3个字母组成的单词

注意:要加\b来限制单词边界

var str = "hello world , the good day 345 i  343 eat";
var reg = /\b[a-z0-9]{3}\b/g;
var line = " ";
while((line = reg.exec(str))!= null) {
		document.write(line);
		document.write("<br>");
}

结果:
the
day
345
343
eat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值