美文网首页
JavaScript

JavaScript

作者: 我不傻_cyy | 来源:发表于2019-10-22 22:14 被阅读0次

1.JavaScript script标签
script标签可以放在html中的任何地方,一般建议放在head标签中。
如果有多段script代码,会按照从上到下的顺序执行。
使用外部js文件,引入使用<script src="filePath"></script>
2.JavaScript注释
单行注释://
多行注释:/* */
3.JavaScript变量
使用var声明一个变量,也可以不实用var声明变量。
变量命名规则:
可以使用数字、字母、下划线、特殊字符($),但是能够以下划线、字母和特殊字符($)作为开头,不能以数字作为开头。
4.JavaScript调试方法
alert进行调试。
浏览器自带的调试工具,按F12在console中查看错误信息。
console.log()进行调试,
5.JavaScript基本数据类型
基本数据类型undefined、Boolean、Number、String、null
undefined:当一个变量被声明了,但没有赋值时,就是undefined。
Boolean:有两种值,true和false。
Number:数字,可以表示十进制,八进制,十六进制,浮点数,科学计数法。
字符串:javascript中没有字符的概念,只有字符串,单引号和双引号都可以用来表示字符串。
动态类型:当值是整数的时候,就是Number类型,当值是字符串的时候,就是String类型。
判断变量类型:使用typeof进行数据类型的判断。
null表示一个对象不存在,是和对象相关的。
6.JavaScript类型转换
伪对象:javaScript中基本数据类型也是伪对象,它们都有属性和方法,例如变量a是字符串,可以通过调用伪对象的属性length来获取长度。
转换为字符串:
无论是Number、Boolean还是string都有toString()方法,用于转换为字符串。
数字转换为字符串的时候可以有默认模式和基模式两种。
例如:

<script>
  var a=10;
  document.write('默认模式下,数字10转换为十进制的'+a.toString()); //默认模式,即十进制
  document.write("<br>");
 
  document.write('基模式下,数字10转换为二进制的'+a.toString(2)); //基模式,二进制
  document.write("<br>");
   
  document.write('基模式下,数字10转换为八进制的'+a.toString(8)); //基模式,八进制
  document.write("<br>");
 
  document.write('基模式下,数字10转换为十六进制的'+a.toString(16)); //基模式,十六进制
  document.write("<br>");
 
</script>

输出为:

默认模式下,数字10转换为十进制的10
基模式下,数字10转换为二进制的1010
基模式下,数字10转换为八进制的12
基模式下,数字10转换为十六进制的a

转换为数字:
javascript分别提供了内置函数parseInt()和parseFloat(),来转换为数字。
需要注意的是如果被转换的字符串,同时由数字和字符构成,那么parseInt会一直定位数字,直到出现非字符。例如“10abc”会被转换为10。
例如:

<script>
    var a = "10abc8";
    document.write('字符10abc8转换为int:'+parseInt(a)); 
    document.write("<br>");
    document.write("字符串3.14转换为数字:" + parseInt('3.14'));
    document.write("<br>");
    document.write("字符串hello javascript转换为数字:" + parseInt('hello javascrip'));
</script>

结果为:

字符10abc8转换为int:10
字符串3.14转换为数字:3
字符串hello javascript转换为数字:NaN

转换为 boolean类型
使用内置函数Boolean()转换为Boolean值
当转换字符串时:非空即为true,
当转换数字时:非0即为true,
当转换对象时:非null即为true,
例如:

<script>
    document.write("字符''转换为boolean:"+Boolean('')); 
    document.write("<br>");
    document.write("字符串'3.14'转换为boolean:" + Boolean('3.14'));
    document.write("<br>");
    document.write("数字0转换为boolean:" + Boolean(0));
    document.write("<br>");
    document.write("数字1转换为boolean:" + Boolean(1));
    document.write("<br>");
    document.write("对象new Object()转换为boolean:" + Boolean(new Object()));
    document.write("<br>");
    document.write("对象null转换为boolean:" + Boolean(null));
    document.write("<br>");
    document.write("undefined转换为boolean:" + Boolean(undefined));
</script>

结果为:

字符''转换为boolean:false
字符串'3.14'转换为boolean:true
数字0转换为boolean:false
数字1转换为boolean:true
对象new Object()转换为boolean:true
对象null转换为boolean:false
undefined转换为boolean:false

Number()和parseInt()的区别:
Number()和parseInt()都可以用来进行数字转换,区别是,当转换的内容包含非数字的时候,Number()会返回NaN(not a number),parseInt()需要视情况而定,如果是以数字开头,就会返回开头的合法数字部分,如果以非数字开头,则返回NaN。
例如:

<script>
    document.write("通过Number将字符123转换为数字:"+Number('123')); 
    document.write("<br>");
    document.write("通过Number将字符123abc转换为数字:" + Number('123abc'));
    document.write("<br>");
    document.write("通过parsetInt将字符123abc转换为数字:" + parseInt('123abc'));
    document.write("<br>");
    document.write("通过parsetInt将字符abc123转换为数字:" + parseInt('abc123'));
    document.write("<br>");

</script>

结果为:

通过Number将字符123转换为数字:123
通过Number将字符123abc转换为数字:NaN
通过parsetInt将字符123abc转换为数字:123
通过parsetInt将字符abc123转换为数字:NaN

String()和toString()的区别:
String()和toString()一样都会返回字符串,区别在于对null的处理,String()会返回字符串“null”,toString()就会报错,无法执行。
例如:

<script>
    document.write("将null对象通过String()转换成字符串"+String(null)); 
    document.write("<br>");
    document.write("将null对象通过toString()转换成字符串" + null.toString());
</script>

输出:

将null对象通过String()转换成字符串null

7.JavaScript函数
function关键字用于定义一个函数
例如:

function print(){
    函数体;
}
其中function关键字用于定义一个函数,print函数名,()表示参数列表,当前例子没有参数。{}表示函数体。

带参数的函数:

function print(message){
    函数体;
}

带返回值的函数:

function calc(x,y){
     return x+y;
}

8.JavaScript作用域
参数作用域:
一个参数的作用域就在函数内部,超过函数就看不到该参数了。
全局变量的作用域:
全局变量的作用域是所有的函数都可以访问。
9.JavaScript事件
事件有很多种,例如鼠标点击,键盘输入等。
10.JavaScript算数运算符
基本运算:
+、-、、/、%
自增、自减运算符
++、--
赋值运算符
=、+=、-=、
=、/=、%=
+运算符的多态:
当运算符两边都是数字的时候,表示算数运算,当任意一边是字符串的时候,表示字符串连接符。
11.JavaScript逻辑运算符
基本逻辑运算符
==、!=、>、>=、<、<=
绝对等于和绝对不等于
===、!==
三目运算符
? :
12.JavaScript条件语句
if 、else、else if、switch
13.JavaScript循环语句
for(循环语句)、while(循环语句)、do-while(循环语句,至少会执行一次)、forEach(增强型循环语句)、continue(退出本次循环,进入下一次需循环)、break(终止循环)
14.JavaScript错误处理
try catch,捕捉到错误之后,catch中进行处理,后续的代码还可以继续执行。
15.JavaScript对象
常见的对象有数字Number、字符串String、日期Date、数组Array等。
数字对象Number,和基本数据类型中的Number不同,数字对像有很多的属性和方法。
创建一个数字对象
new Number()
最大值和最小值
Number.MAX_VALUE、Number.MIN_VALUE
表示不是数字
NaN(Not a Number),表示不是一个数字,当通过非数字创建Number的时候,就会得到NaN。
注意:不能通过是否等于Number.NaN来判断是否不是数字,而是应该使用函数isNaN()
例如:

<script>
    var a = new Number("aba123");
    document.write(a==Number.NaN);
    document.write("</br>");
    document.write(isNaN(a));
</script>
输出为:
false
true

返回数字的小数表达
toFix(n):设置数字保留n为小数。
例如:

 var a = new Number("23");
 document.write(a.toFixed(2));
 输出23.00

返回一个数字对象的基本数据类型
方法valueOf()返回一个基本类型的数字
例如:

    var a = new Number("23");
    var b = a.valueOf();
    document.write("a的数据类型为:" + typeof a);
    document.write("</br>");
    document.write("b的数据类型为:" + typeof b);
输出为:
a的数据类型为:object
b的数据类型为:number

字符串对象:基本数据类型的String也有一个String对象,并且提供了很多方法
创建字符串对象
new String()
字符串长度
可以通过属性length返回字符串的长度
返回指定位置的字符
chartAt():返回指定位置的字符
chartCodeAt():返回指定位置的字符对应的unicode码
字符串拼接
contact()用于进行字符串拼接
子字符串出现的位置
indexOf()返回子字符串第一次出现的位置
lastIndexOf()返回子字符串最后一次出现的位置
比较两段字符串是否相同
localeCompare():比较两段字符串是否相同,0表示相同,非0表示不相同。
截取一段子字符串
subString(start,end):其中第二个参数取不到。
根据分分隔符,把字符串转换为数组,第二个参数可选,表示返回数组的长度。
split(arg1,arg2)
替换子字符串
replace(search,replacement),查找满足条件的子串,并替换为replacement
原则上只会替换查找到的第一个子字符串,如果要替换所有的,需要写成,
例如:

    var x = new String("hello world");
    var y = x.replace("o","a");
    document.write("只替换第一个o:" + y);
    document.write("</br>");
    var z = x.replace(/o/g,"a");      //全局替换
    document.write("替换所有的o:" + z);
    document.write("</br>");
    var regx = new RegExp("o","g");   //全局替换
    var m = x.replace(regx,"a");
    document.write("替换所有的o:" + m);

输出为:
只替换第一个o:hella world
替换所有的o:hella warld
替换所有的o:hella warld

返回基本类型:需要注意的是所有返回字符串类型的方法,返回的都是基本类型的String。例如chartAt()、contact()、substring()。

JavaScript中的数组:数组的长度是可以发生变化的。
创建数组对象:
new Array():创建长度为0的数组
new Array(5):创建长度为5的数组,但是其中的每个元素都是undefined
new Array(3,1,2,4):根据参数创建数组。
数组长度:
通过属性length来获取一个数组的长度
遍历数组:
可以使用通过for循环使用下标遍历
也可以使用增强的for in循环遍历
在增强的for循环中i表示下标的意思
for(i in x){
print(x[i]);
}
连接数组:concat()连接联合数组
通过分隔符,返回一个数组的字符串表达
join(分隔符)
使用方法push、pop分别在最后的位置插入数据和获取数据(获取后删除)
使用方法unshift、shift分别在最开始的位置插入数据和获取数据(获取后删除)
对数组的内容进行排序:sort()
自定义排序算法:
sort()采用默认的正序,即小的数值排在前面,如果采用自定义的顺序排序,就需要将比较器函数作为参数传递给sort()
例如:

function comparator(v1,v2){
    return v2-v1;    //表示大的放在前面,
}
x.sort(comparator)

对数组的内容进行反转
reverse()
获取子数组
方法slice()获取子数组,第二个参数取不到。
删除和插入元素
splice()用于删除数组中的元素,还能向数组中插入元素

数组3,1,4,5,9,2,6
x.splice(3,2)删除从位置3开始,删除2个元素:3,1,4,9,2,6
x.splice(3,0,1,5)删除从位置3开始,删除0个元素,但是插入1和5:3,1,4,1,5,9,2,6

JavaScript日期对象:
Date
创建日期对象new Date()
分别获取年/月/日
需要注意的是getMonth()返回月数,是从0开始的,0表示1月份。
获取时:分:秒:毫秒
getHours(),getMinutes(),getSeconds(),getMillseconds()
一周的第几天
getDay()获取本周的第几天,需要注意的是是从0开始的。
经历的毫秒数
获取从1970/1/1 08:00:00至今的毫秒数
new Date().getTime();
修改日期和时间
把日期对象设置为2012/12/12 00:00:00

    var d = new Date();
    d.setFullYear(2012);
    d.setMonth(11);
    d.setDate(12);
    d.setHours(0);
    d.setMinutes(0);
    d.setSeconds(0);

JavaScript中常见的工具对象,用于常见的数学运算
自然对数和圆周率:E 、PI
绝对值:abs
最大值最小值:min、max
求幂:pow
四舍五入:round
随机数(取0-1之间的随机数):random
自定义对象
通过new Object()创建一个对象
通过function设计一个对象
例如:

function Hero(name){
        this.name = name;
        this.kill = function(){
            document.write(this.name);
        }
    }
    var green = new Hero("glace");
    green.kill();

    //给已经存在的对象添加一个方法
    Hero.prototype.keng = function(){
        document.write(this.name);
    }

16.BOM(Browser Object Model)浏览器对象模型
浏览器对象包括:
Window(窗口)、Navigator(浏览器)、Screen(屏幕)、History(访问历史)、Location(浏览器地址)。
window:
获取文档显示区域的高度和宽度
window.innerWidth,window.innerHeight
获取外部窗体的宽度和高度
window.outerWidth,window.outerHeight
打开一个新的窗口:window.open()
Navigator:浏览器对象,提供浏览器相关的信息
获取浏览器的相关信息:
navigator.appName(浏览器产品名称)
navigator.appversion(浏览器版本号)等。
Screen对象用于表示用户的屏幕相关的信息。
screen.height(获取屏幕高度)
screen.width(获取屏幕宽度)
screen.availWidth(获取屏幕可用宽度)
screen.availHeight(获取屏幕可用高度)
History用于记录访问历史:
history.back()(返回上一次的访问)等同于history.go(-1)、history.go(-2)(返回上上次的访问),以此类推。
Location表示浏览器中的地址栏:
刷新当前页面:location.reload();
跳转到另一个页面:location.assign();
浏览器弹出框:
常见的弹出框有:
alert(警告框)、confirm(确认框)、prompt(输入框)。
计时器:
setTimeout(function,距离开始时间毫秒数):只执行一次。
setInterval(函数名,重复执行的时间间隔毫秒数):重复执行同一个函数。
通过clearInterval终止一个不断重复的任务,清除定时器。

相关文章

网友评论

      本文标题:JavaScript

      本文链接:https://www.haomeiwen.com/subject/dgbwmctx.html