JavaScript学习

Posted 疯子姓张

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript学习相关的知识,希望对你有一定的参考价值。

前提知识:

  编译:程序语言变为机器语言的过程。

  解释性语言:执行一行,编译一行。编译性语言:执行前,编译所有代码。

  编译性语言:shell,javascript,html,python

  编译性语言:Java

一、是什么?

JavaScript 是脚本语言。可插入HTML页面的编程代码,可由所有的现代浏览器执行。

注意:

  1 HTML 中的脚本必须位于 <script> 与 </script> 标签之间。

  2 <script src="myScript.js"></script>

  3 JavaScript 对大小写是敏感的。

  4 JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。(顺序执行)

  5 JavaScript 是面向对象的语言,但 JavaScript 不使用类。

       6 在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。

  7JavaScript 基于 prototype,而不是基于类的。

  8  prototype允许我们在创建对象之后来改变对象或类的行为,并且这些通过prototype属性添加的字段或方法所有对象实例是共享的。

二、有哪些功能呢?

1 可以调用HTML DOM(操作HTML元素)

2 可以调用Window ( BOM )

3 自己的功能

三、JS语法

3.1 变量

变量声明  var x=2; 注意(undefined)

 


局部变量会在函数运行以后被删除。全局变量会在页面关闭后被删除。

注意:如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。carname="Volvo";(不提倡!!!)

3.2 数据类型
所有的数据类型:1 字符串、2 数字、3 布尔、4 数组、5 对象、6 Null、7 Undefined

3.3 对象(可自定义)

JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。

function person(firstname,lastname,age,eyecolor)
{    
//属性
this.firstname=firstname;    this.lastname=lastname;    this.age=age;    this.eyecolor=eyecolor;
//方法   
this.changeName=changeName;   function changeName(name)   {     this.lastname=name;   } }

3.4 函数

function functionname()
{
     这里是要执行的代码
}

3.5 运算符

1 算术:+、-、*、/、%、++、--

2 赋值:=、+=、-=、*=、/=、%=

3 比较 == ===(全等,值和类型) != > < >= <=

4 逻辑 && ||5 条件 ?:

 

3.6 控制流

分支:

1 if 
2 if...else 
3 if...else if....else 
4 switch 

循环:

1 for
2 for/in 
3 while 
4 do/while 

break 语句用于跳出循环。
continue 用于跳过循环中的一个迭代。

注意:
continue 语句只能用在循环中。
break 语句用在循环或 switch 中,还可以用在跳出代码块!

奇怪用法:通过标签引用,break 语句可用于跳出任何 JavaScript 代码块:

cars=["BMW","Volvo","Saab","Ford"];
list:
{
    document.write(cars[0] + "<br>");
    document.write(cars[1] + "<br>");
    document.write(cars[2] + "<br>");
    break list;
    document.write(cars[3] + "<br>");
    document.write(cars[4] + "<br>");
    document.write(cars[5] + "<br>");
}

 

var day=new Date().getDay();
switch (day)
{
    case 6:x="Today it‘s Saturday";
    break;
    case 0:x="Today it‘s Sunday";
    break;
    default:
    x="Looking forward to the Weekend";
}

3.7 错误

try-catch 
throw   自定义错误。

//throw exception exception可以是 JavaScript 字符串、数字、逻辑值或对象。 

3.8 注释

单行注释以 //

多行注释以 /* 开始,以 */ 结尾。

 

四、HTMl DOM

通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。

  1 JavaScript 能够改变页面中的所有 HTML 元素
  2 JavaScript 能够改变页面中的所有 HTML 属性
  3 JavaScript 能够改变页面中的所有 CSS 样式
  4 JavaScript 能够对页面中的所有事件做出反应

//元素属性
document.getElementById(id).attribute=new value

//CSS样式
document.getElementById(id).style.property=new style

 

注意:HTMl DOM 事件:所有 http://www.w3school.com.cn/jsref/dom_obj_event.asp

五、JS 对象(有可以调用的属性和方法):

1 数字、2 字符串、3 日期、4 数组、5 逻辑、6 算数、7 正则表达式

数字属性和方法 http://www.w3school.com.cn/jsref/jsref_obj_number.asp

字符串属性和方法:http://www.w3school.com.cn/jsref/jsref_obj_string.asp

日期的属性和方法:http://www.w3school.com.cn/jsref/jsref_obj_date.asp

布尔的属性和方法:http://www.w3school.com.cn/jsref/jsref_obj_boolean.asp

正则的属性和方法:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

算数的属性和方法:http://www.w3school.com.cn/jsref/jsref_obj_math.asp

//算数:执行常见的算数任务。
document.write(Math.random())

//----------

//正则:
var patt1=new RegExp("e");

RegExp 对象有 3 个方法:test()、exec() 以及 compile()。

-------

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));

由于该字符串中存在字母 "e",以上代码的输出将是: true

//-----

//exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));

由于该字符串中存在字母 "e",以上代码的输出将是:e


//----

//compile() 方法用于改变 RegExp。compile() 既可以改变检索模式,也可以添加或删除第二个参数。

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
patt1.compile("d");
document.write(patt1.test("The best things in life are free"));

输出为:turefalse

六、JS BOM

浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”。

6.1 Window

所有浏览器都支持 window 对象。它表示浏览器窗口。
JavaScript 全局变量是 window 对象的属性。 JavaScript 全局函数是 window 对象的方法。
HTML DOM 的 document 也是 window 对象的属性之一
window.document.getElementById("header");=document.getElementById("header");

浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)。

对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
window.innerHeight - 浏览器窗口的内部高度
window.innerWidth - 浏览器窗口的内部宽度

对于 Internet Explorer 8、7、6、5:
document.documentElement.clientHeight
document.documentElement.clientWidth

------------

window.open() - 打开新窗口
window.close() - 关闭当前窗口
window.moveTo() - 移动当前窗口
window.resizeTo() - 调整当前窗口的尺寸


6.2 Screen

window.screen 对象包含有关用户屏幕的信息。

screen.availWidth - 可用的屏幕宽度 像素
screen.availHeight - 可用的屏幕高度 像素

 


6.3 Location

window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

location.href 属性返回当前页面的 URL。
location.pathname 属性返回 URL 的路径名。
location.assign() 方法加载新的文档。

6.4 History

window.history 对象包含浏览器的历史。

history.back() - 与在浏览器点击后退按钮相同
history.forward() - 与在浏览器中点击按钮向前相同

 

6.5 Navigator(不用)

window.navigator 对象包含有关访问者浏览器的信息。(不用的原因是获取的信息可能是被使用者修改的,不真实)

//所以用别的方法检测浏览器

浏览器检测:

由于不同的浏览器支持不同的对象,您可以使用对象来检测浏览器。例如,由于只有 Opera 支持属性 "window.opera",您可以据此识别出 Opera。

if(window.opera){
    //说明是opera浏览器! 
}

 

6.6 PopupAlert(消息框)

可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。

警告框:alert("文本")
确认框:confirm("文本")
提示框:prompt("文本","默认值") 需要填写东西

 


6.7 Timing(定时任务)

setTimeout("javascript语句",毫秒)     未来的某时执行代码

clearTimeout(setTimeout_variable)   取消setTimeout()

------------------

t=setTimeout("timedCount()",1000)
clearTimeout(t)

 


6.8 Cookies

cookie 用来识别用户。

cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。

创建和存储 cookie document.cookie

七、JS库

JavaScript 库 - jQuery、Prototype、MooTools。
这些 JavaScript 库常被称为 JavaScript 框架。

注意:
您不能在 jQuery 对象上使用 HTML DOM 的属性和方法。Prototype 它是包含属性和方法的库,用于操作 HTML DOM。

注意:Prototype库和Prototype属性不是一个东西!!!!

prototype属性  允许我们在创建对象之后来改变对象或类的行为,并且这些通过prototype属性添加的字段或方法所有对象实例是共享的。

 

 

 

 

 

 

 

 

 



































以上是关于JavaScript学习的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

30秒就能看懂的JavaScript 代码片段

常用Javascript代码片段集锦

48个值得掌握的JavaScript代码片段(上)

如何将此 JavaScript 代码片段翻译成 Parenscript?