ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaScript学习笔记

2019-06-25 11:48:23  阅读:204  来源: 互联网

标签:write JavaScript 笔记 学习 字符串 fruit num var document


 

 

* 正则表达式

在js中使用正则表达式可以通过RegExp对象或String对象,其中RegExp对象定义正则表达式有两种方式,一是普通方式,二是构造函数的方式。

RegExp对象解析:

普通方式:

语法:var reg=/表达式/附加参数

如:var reg=/ab+/;

构造函数方式:

语法:var reg=new RegExp(“表达式”,”附加参数”),也可以不写附加参数。

如:reg=new RegExp("[0-9]");

reg=new RegExp("[0-9]","g");

附加参数:用来扩展表达式的含义,主要有以下三个参数。

g:代表可以进行全局匹配

I:代表不区分大小写匹配

m:代表可以进行多行匹配

RegExp对象的方法和属性:   

test():检索字符串中正则表达式匹配的值,如果找到了返回true,否则返回false;

exec():检索字符串中正则表达式匹配的值,如果找到了则返回匹配值,否则返回空字符串;如果字符串中有多个正则表达式匹配的值,那么exec方法会将这些值全部返回,各值之间用","连接;返回的值是最后一次正则表达式匹配得到的值。

如:reg=/(a|b)jj/;->如字符串为"ajj",那么结果为"ajj,a",返回的值是最后一次正则表达式匹配得到的值。

 reg=/(1|2){2,3}/;->1或2出现至少2次,至多3次;如111,121,212,如果字符串为"221",那么返回的值为"221,1"。

 

global:用于确定正则表达式中是否具有标志g,返回true或false

ignoreCase:同上所述,是否具有标志i

multiline:同上所述,是否具有标志m

语法:

正则表达式对象实例.test(字符串)

正则表达式对象实例.exec(字符串)

String对象解析:

match():检索字符串中指定的值,如果找到了返回匹配值,否则返回null;

语法:字符串对象.match(字符串或RegExp对象)

replace():替换与正则表达式相匹配的值

语法:字符串对象.replace(字符串或RegExp对象(被替换),”替换的字符串”)

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

字符串对象.split(字符串或RegExp对象,n)

n为限制数组中元素的个数,如果不设置n,则没有限制。

正则表达式中常用的符号和用法:

符号

描述

/.../

代表一个模式的开始和结束

^

匹配字符串的开始

$

匹配字符串的结束

\s

任何空白字符

\S

任何非空白字符

\d

一个数字字符

\D

除了数字之外的任何字符

\w

一个数字、下划线或字母

\W

任何非\w字符

.

除了换行符之外的任何字符

+

匹配前一项1次或多次

*

匹配前一项0次或多次

匹配前一项0次或1次

{}

可以没上限,不能没下限

{n}->匹配前一项n次

{n,m}->匹配前一项至少n次,至多m次

{n,}->匹配前一项n次或更多次

{,n}->错误写法,得不到任何结果

[]

[abcd]->a、b、c、d中任何一个字符

[a-z]->a至z中任何一个字符

[a-zA-Z]所有英文字母

[9-0]->错误写法,会导致字符集越界,js出错

[^0-9]不能是0至9中任何一个字符

|

hi|hello->匹配hi或hello

()

a(b|c)d->a和d中间为b或c

注意:

 正则表达式如果匹配正确,那么不会再往下匹配了。如果想要将通配符转化为普通字符来匹配,那么需要使用反斜杠\来进行字符转义。如reg=/\./;就是将点号变为普通字符。

 

常用正则表达式

 

 

 

* prompt()

prompt()的第二个参数如果省略,那么就会在文本框中出现“undefined”;如果单击取消或关闭按钮,就会返回null;如果单击确定,就会返回输入文本框中的字符串。

 

* 数组

这个里面的数组是一个可以包含任何类型的数组,例如在一个数组中可以放不同类型的元素;

为数组元素赋值有以下几种写法:

var fruit=new Array(2);

fruit[0]="苹果";

fruit[1]="橘子";

 

var fruit=new Array("苹果","橘子");

 

var fruit=["苹果","橘子"];

 

输出fruit,结果为:苹果,橘子;

 

有一种错误写法:var fruit=("苹果","橘子");这样写它会把最后一个字符串(橘子)拆分成字符串数组,但是遇到不是字符串的就会出错,如var fruit=("苹果","橘子",12345);fruit.length=undefined;但是输出fruit,结果却为12345;

 

<script type="text/javascript">

var fruit=("苹果","橘子");

    for(var i in fruit){

      document.write( fruit[i])

}

document.write(" "+fruit.length);

</script>

 

输出:橘子 2

 

如果不为字符串定义定义长度,如var fruit=new Array();那么长度就会默认为0,fruit[100]=undefined;这个数组中所有元素的值都为undefined;

 

* parseInt()、parseFloat()、isNaN()

var num=parseInt("+-0sdf");

  document.write(num);

输出:NaN

 

var num=parseInt("-0sdf");或var num=parseInt("+0sdf");

  document.write(num);

输出:0

 

var num=parseInt(".0sdf");

  document.write(num);

输出:NaN

 

var num=parseInt("11.23sdf");

  document.write(num);

输出:11

 

parseFloat()方法与parseInt()大致相同,有一些区别:

var num=parseFloat(".0sdf");

  document.write(num);

输出:0

 

var num=parseFloat(".1sdf");

  document.write(num);

输出:0.1

 

var num=parseFloat("11sdf");

  document.write(num);

输出:11

 

var num=parseFloat("11.23sdf");

  document.write(num);

输出:11.23

 

isNaN()方法:

默认值为true

 document.write(isNaN("12.2")),结果为false,它会把字符串转化为数值;

 

*

数组和null是object类型的,NaN是number类型的;

 

* 自定义函数

function show(n){},不能写成function show(var n){};

 

* onl oad()

在网页中,每次前进或后退都会刷新页面;

onload和location是打开一个新页面(可以前进和后退的)

onload必须等待网页中所有的内容(包括脚本)加载完毕后才能执行,onload打开新页面是因为函数;

如:

function show(){

var today=new Date();

document.write(today)

}

      location='两数运算.HTML'     

</script>

</head>

 

<body onl oad= show()>

它会先链接到'两数运算.HTML',这个onload就永远都出不来了。

 

* close()

close()这个方法如果在<script>标签中可以执行,但是直接在HTML标签中写就必须写成window.close();

关闭窗口时,只关闭本窗口。

 

 

*

在函数中输出文字到屏幕上(与body中的HTML代码无关),他就会打开一个新页面(可以前进或后退)显示内容。

如:

<script type="text/javascript">

function changeLink(){

 document.write("khkhjkhkjhk");

}

 

</script>

 

</head>

 

<body >

<input name="b1" type="button" value="改变层内容" onclick="changeLink()"/>

</body>

 

*

document.getElementById()

document.getElementsByName()

document.getsElementByTagName()

以上三个方法必须写在函数里才能被使用。其中document.getElementById()是返回对拥有指定ID的第一个对象的引用,如一个div的对象的引用为[object HTMLDivElement];而p的对象的引用为[object HTMLParagraphElement];如果找不到,就会返回null。

如:

<script type="text/javascript">

function show(){

document.write(document.getElementById("all").checked);

}

</script>

 

</head>

 

<body>

<input id="all" type="checkbox" value="1" onclick="show()"/>全选<br />

</body>

 

不能直接输出document.getElementsByName("all")和document.getElementsByTagName("input");系统会提示拒绝访问。

如:

var s= document.getElementsByName("all");

document.write(s);

直接输出document.getElementById("all"); 结果会是null;

如:

var s= document.getElementById("all");

document.write(s);

 

*

日期的getDay()返回的值介于0~6之间,getMonth()返回的值介于0~11之间。

 

*

<h1>服饰</h1>哈哈,只有服饰变成1号字体;

<h1>服饰<h1>哈哈,服饰和哈哈都变成1号字体;

 

*

可见性过滤选择器:hidden,只对display有用,对visibility没用。

display:none;是将元素隐藏,并且元素会从页面上移走。

visibility:hidden;也是将元素隐藏,但是元素还是在原来的位置,只是看不见而已。

 

*

toggle()方法叫做套索;

toggle()方法可以切换元素的可见状态,如果被选元素可见,则隐藏这些元素,反之。

toggle(true)显示被选元素,反之。

toggle(function1,function2),单击被选元素调用function1,再单击被选元素调用function2,一直循环。

$("h1:gt(0)").toggle();这个方法也可以将下标大于0的元素都隐藏,并且元素会从页面上移走。

 

*

click()方法中如果放了多个函数,如click(function1,function2,function3,function4),那么他会默认调用第二个函数。

 

*

当使用对象的函数(如click())时,系统会默认为bind()绑定时间。

bind()绑定时间只对一开始的数据有用,后来新增的数据没有效果。

而live()对一开始的数据和后来新增的数据都有用。

 

*

html()获取的是在网页中的样子,

如;<div id="emailId">我            你</div>

那么这个的html()就是“我            你”,但是在网页中显示空格要用 ,这样用回车键打出的空格,不管有多长,都只算做1个空格。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:write,JavaScript,笔记,学习,字符串,fruit,num,var,document
来源: https://www.cnblogs.com/syjp/p/11081925.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有