HTML 中肯定会用到 JavaScript 的知识点,会点 JavaScript 的基础知识不会吃亏,其实打算去买JavaScript的教程去专门学习一下,但是交给我的时间不多了,记录一点,能会一点是一点吧。。


本博借鉴自大神:www.cnblogs.com/yuanchenqi/articles/5980312.html

  版权声明:未经博主授权,内容严禁分享转载  


1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言)。

Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript。

微软随后模仿在其IE3.0的产品中搭载了一个JavaScript的克隆版叫Jscript。

为了统一三家,ECMA(欧洲计算机制造协会)定义了ECMA-262规范.国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。EcmaScript是规范。

尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

  • 核心(ECMAScript)
  • 文档对象模型(DOM) Document object model (整合js,css,html)
  • 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)
  • Javascript 在开发中绝大多数情况是基于对象的.也是面向对象的。

简单地说,ECMAScript 描述了以下内容:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 运算符
  • 对象 (封装 继承 多态) 基于对象的语言.使用对象。

JavaScript 的引入方式 一:

<script src='js.js'></script>

JavaScript可以直接在HTML文件中编写:

<html>    <head>        <title>HTML学习JS</title>        <script src='js.js'></script>    </head><body>    <p>你好,王同学</p>

    <script>        alert('nihao!')        var a = 1 ; var b =13;        alert(a)        alert(b)        </script></body></html>

JavaScript 中的变量是很随意的。

变量声明的过程中不需要声明变量的内容,全部使用var关键字来注明。例如:

<script>var num = 1; var name; </script>

其中一行可以声明多个变量,并且可以是不同类型的变量。例如:

var name='wangjiawei' , age = 18 , sex = 'man';

声明变量可以不需要 var 关键字,等于声明全局变量。

变量名的命名规则:只能是字母,下划线_ ,美元符号$,三选一,并且会区分大小写,例如A和a是两个变量。

Camel 标记法
首字母是小写的,接下来的字母都以大写字符开头。例如:
var myTestValue = 0, mySecondValue = "hi";
Pascal 标记法
首字母是大写的,接下来的字母都以大写字符开头。例如:
Var MyTestValue = 0, MySecondValue = "hi";
匈牙利类型标记法
在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),说明该变量的类型。例如,i 表示整数,s 表示字符串,如下所示“
Var iMyTestValue = 0, sMySecondValue = "hi";

注意一点:

function fun1(){var a=123;b =456
}fun1();
alert(a) // a 为局部变量,会出问题的
alert(b)

JavaScript 每行结束可以不加分号,没有分行会以换行符作为每行的结束。

            q = 1 ; w =2;  // 正确e = 3  r = 4;  // 错误
t = 5y = 6// 推荐使用下面表示方法i = 12;p = 13;

注释支持多行注释和单行注释  /**/   和   //   表示。

使用花括号 {} 来封装代码块。

常量:指直接在程序中出现的数值。

标识符:

  1.由不以数字开头的字母、数字、下划线(_)、美元符号($)组成

  2.常用于表示函数、变量等的名称

  3.例如:_abc,$abc,abc,abc123是标识符,而1abc不是

  4.JavaScript语言中代表特定含义的词称为保留字,不允许程序再定义为标识符

  

  

 

数据类型:

  

  

数值类型:

  简介
  最基本的数据类型
  不区分整型数值和浮点型数值
  所有数字都采用64位浮点格式存储,相当于Java和C语言中的double格式
  能表示的最大值是±1.7976931348623157 x 10308
  能表示的最小值是±5 x 10 -324

  整数:在JavaScript中10进制的整数由数字的序列组成精确表达的范围是 -9007199254740992 (-253) 到 9007199254740992 (253)超出范围的整数,精确度将受影响浮点数:使用小数点记录数据例如:3.4,5.6使用指数记录数据例如:4.3e23 = 4.3 x 102316进制和8进制数的表达16进制数据前面加上0x,八进制前面加016进制数是由0-9,A-F等16个字符组成8进制数由0-7等8个数字组成16进制和8进制与2进制的换算

# 2进制: 1111 0011 1101 0100   <-----> 16进制:0xF3D4 <-----> 10进制:62420
# 2进制: 1 111 001 111 010 100 <-----> 8进制:0171724

字符串(String)

  简介
  是由Unicode字符、数字、标点符号组成的序列
  字符串常量首尾由单引号或双引号括起
  JavaScript中没有字符类型
  常用特殊字符在字符串中的表达
  字符串中部分特殊字符必须加上右划线\
  常用的转义字符 \n:换行  \':单引号   \":双引号  \\:右划线

String数据类型的使用

  • 特殊字符的使用方法和效果
  • Unicode的插入方法
1
2
3
4
<script>
        var str="\u4f60\u597d\n欢迎来到\"JavaScript世界\"";
        alert(str);
</script>

布尔型(Boolean)

简介
Boolean类型仅有两个值:true和false,也代表1和0,实际运算中true=1,false=0
布尔值也可以看作on/off、yes/no、1/0对应true/false
Boolean值主要用于JavaScript的控制语句,例如if (x==1){y=y+1;}else    {y=y-1;}

Null & Undefined

Undefined 类型

Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。

当函数无明确返回值时,返回的也是值 "undefined";

Null 类型

另一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

尽管这两个值相等,但它们的含义不同。undefined 是声明了变量但未对其初始化时赋予该变量的值,null 则用于表示尚未存在的对象(在讨论 typeof 运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是 null。

var person=new Person()

var person=null

数据类型转换

JavaScript属于松散类型的程序语言
变量在声明的时候并不需要指定数据类型
变量只有在赋值的时候才会确定数据类型
表达式中包含不同类型数据则在计算过程中会强制进行类别转换

数字 + 字符串:数字转换为字符串

数字 + 布尔值:true转换为1,false转换为0

字符串 + 布尔值:布尔值转换为字符串true或false

强制类型转换函数

函数parseInt:   强制转换成整数   例如parseInt("6.12")=6  ; parseInt(“12a")=12 ; parseInt(“a12")=NaN  ;parseInt(“1a2")=1函数parseFloat: 强制转换成浮点数  parseFloat("6.12")=6.12函数eval:       将字符串强制转换为表达式并返回结果 eval("1+1")=2 ; eval("1<2")=true

类型查询函数(typeof)

ECMAScript 提供了 typeof 运算符来判断一个值是否在某种类型的范围内。可以用这种运算符判断一个值是否表示一种原始类型:如果它是原始类型,还可以判断它表示哪种原始类型。

函数typeof :查询数值当前类型
 (string / number / boolean / object )
例如typeof("test"+3)      "string"
例如typeof(null)          "object "
例如typeof(true+1)        "number"
例如typeof(true-false)    "number"

 ECMAScript 算数运算符

加(+)、 减(-)、 乘(*) 、除(/) 、余数(% )  加、减、乘、除、余数和数学中的运算方法一样  例如:9/2=4.5,4*5=20,9%2=1“-” 除了可以表示减号还可以表示负号  例如:x=-y“+” 除了可以表示加法运算还可以用于字符串的连接  例如:"abc"+"def"="abcdef"

递增(++) 、递减(--)

假如x=2,那么x++表达式执行后的值为3,x--表达式执行后的值为1
i++相当于i=i+1,i--相当于i=i-1
递增和递减运算符可以放在变量前也可以放在变量后:--ivar i=1;
console.log(i++);
console.log(++i);
console.log(i--);
console.log(--i);

一元加减法:

var c="10";
alert(typeof (c));  --》 string
c=+c;    //类型转换
alert(typeof (c));  --》 int

var d="yuan";d=+d;alert(d);//NaN:属于Number类型的一个特殊值,当遇到将字符串转成数字无效时,就会得到一个NaN数据alert(typeof(d));//Number

//NaN特点:var n=NaN;alert(n>3);alert(n<3);alert(n==3);alert(n==NaN);alert(n!=NaN);//NaN参与的所有的运算都是false,除了!=

ECMAScript 逻辑运算符

等于 ( == )  、不等于( != ) 、 大于( > ) 、 小于( < )
大于等于(>=) 、小于等于(<=)
与 (&&) 、或(||) 、非(!)
1 && 1 = 1  1 || 1 = 1
1 && 0 = 0  1 || 0 = 1
0 && 0 = 0  0 || 0 = 0!0=1
!1=0

逻辑 AND 运算符( && )

逻辑 AND 运算的运算数可以是任何类型的,不止是 Boolean 值。

如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:

  • 如果某个运算数是 null,返回 null。
  • 如果某个运算数是 NaN,返回 NaN。
  • 如果某个运算数是 undefined,返回undefined。

逻辑 OR 运算符( || )

与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值。

赋值 =
JavaScript中=代表赋值,两个等号==表示判断是否相等
例如,x=1表示给x赋值为1
if (x==1){...}程序表示当x与1相等时
if(x==“on”){…}程序表示当x与“on”相等时配合其他运算符形成的简化表达式
例如i+=1相当于i=i+1,x&=y相当于x=x&y

2 == “2”
2 === “2”
4 != “4”
4 !== “4”        var a = 2; var b = 4;
var c = a<b | --b>--a;
var c = a<b || --b>--a;
var c = a<b &&--b>--a;
var c = a<b & --b>--a; 

ECMAScript 等性运算符:

执行类型转换的规则如下:

  • 如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1。
  • 如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
  • 如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。
  • 如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。

在比较时,该运算符还遵守下列规则:

  • 值 null 和 undefined 相等。
  • 在检查相等性时,不能把 null 和 undefined 转换成其他值。
  • 如果某个运算数是 NaN,等号将返回 false,非等号将返回 true。
  • 如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。

1
2
var bResult = "Blue" < "alpha";
alert(bResult); //输出 true

在上面的例子中,字符串 "Blue" 小于 "alpha",因为字母 B 的字符代码是 66,字母 a 的字符代码是 97。

比较数字和字符串

另一种棘手的状况发生在比较两个字符串形式的数字时,比如:

var bResult = "25" < "3";
alert(bResult); //输出 "true"

上面这段代码比较的是字符串 "25" 和 "3"。两个运算数都是字符串,所以比较的是它们的字符代码("2" 的字符代码是 50,"3" 的字符代码是 51)。

不过,如果把某个运算数该为数字,那么结果就有趣了:

var bResult = "25" < 3;
alert(bResult); //输出 "false"

这里,字符串 "25" 将被转换成数字 25,然后与数字 3 进行比较,结果不出所料。

所以,总结一下:

比较运算符两侧如果一个是数字类型,一个是其他类型,会将其类型转换成数字类型.
比较运算符两侧如果都是字符串类型,比较的是最高位的asc码,如果最高位相等,继续取第二位比较.

var temp=new Object();// false;[];0; null; undefined;object(new Object();)if(temp){console.log("yuan")}else {console.log("alex")}

等号和非等号的同类运算符是全等号和非全等号。这两个运算符所做的与等号和非等号相同,只是它们在检查相等性前,不执行类型转换。

比较数字和字符串

另一种棘手的状况发生在比较两个字符串形式的数字时,比如:

1
2
var bResult = "25" "3";
alert(bResult); //输出 "true"

上面这段代码比较的是字符串 "25" 和 "3"。两个运算数都是字符串,所以比较的是它们的字符代码("2" 的字符代码是 50,"3" 的字符代码是 51)。

不过,如果把某个运算数该为数字,那么结果就有趣了:

1
2
var bResult = "25" < 3;
alert(bResult); //输出 "false"

这里,字符串 "25" 将被转换成数字 25,然后与数字 3 进行比较,结果不出所料。

总结:

1
2
比较运算符两侧如果一个是数字类型,一个是其他类型,会将其类型转换成数字类型.
比较运算符两侧如果都是字符串类型,比较的是最高位的asc码,如果最高位相等,继续取第二位比较.

获取今天的星期值,0为星期天

var x= (new Date()).getDay();

if 判断的使用案例

if (x==1){y="星期一";
}else if (x==2){y="星期二";
...
}else if (x==6){y="星期六";
}else if (x==0){y="星期日";
}else{y="未定义";

Switch 选择控制语句

switch基本格式
switch (表达式) {case 值1:语句1;break;case 值2:语句2;break;case 值3:语句3;break;default:语句4;
}

使用案例:

switch(x){
case 1:y="星期一";    break;
case 2:y="星期二";    break;
case 3:y="星期三";    break;
case 4:y="星期四";    break;
case 5:y="星期五";    break;
case 6:y="星期六";    break;
case 7:y="星期日";    break;
default: y="未定义";
}

for循环基本使用格式:

for循环基本格式
for (初始化;条件;增量){语句1;...
}
功能说明
实现条件循环,当条件成立时,执行语句1,否则跳出循环体

for 循环使用案例:

for (var i=1;i<=7;i++){document.write("<H"+i+">hello</H "+i+"> ");document.write("<br>");
}
----------------------------------------------var arr=[1,"hello",true]//var dic={"1":"111"}for (var i in arr){console.log(i)console.log(arr[i])}

值得注意的是:

doms=document.getElementsByTagName("p");for (var i in doms){console.log(i); // 0 1 2 length item namedItem//console.log(doms[i])
    }//循环的是你获取的th一个DOM元素集,for in用来循环对象的所有属性,dom元素集包含了你上面输出的属性。
//如果你只要循环dom对象的话,可以用for循环:for (var i=0;i<doms.length;i++){console.log(i) ; // 0 1 2//console.log(doms[i])}

结论:for i in 不推荐使用.

while 循环语句

while循环基本格式
while (条件){
语句1;
...
}
功能说明
运行功能和for类似,当条件成立循环执行语句花括号{}内的语句,否则跳出循环

使用案例:

var i=1;
while (i<=7) {document.write("<H"+i+">hello</H "+i+"> ");document.write("<br>");i++;
}
//循环输出H1到H7的字体大小

异常处理:

try {//这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {// 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。//e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {//无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
}

注:主动抛出异常 throw Error('xxxx')

转载于:https://www.cnblogs.com/wjw1014/p/8916427.html

HTML JavaScript 基础学习相关推荐

  1. javaScript基础学习 - 14 - JavaScript内置对象 -案例代码

    javaScript基础学习 - 14 - JavaScript内置对象 -案例代码 1. Math对象最大值 2. 封装自己的数学对象 3. Math绝对值和三个取整方法 4. Math对象随机数方 ...

  2. JavaScript基础学习 模拟京东查询快递单号

    JavaScript基础学习 模拟京东查询快递单号 <!DOCTYPE html> <html lang="en"><head><meta ...

  3. JavaScript基础学习 动态生成表格

    JavaScript基础学习 动态生成表格 根据我们拥有的数据来动态创建表格的行和列,以及实现删除行的操作 <!DOCTYPE html> <html lang="en&q ...

  4. JS学习笔记(JavaScript基础学习必备)

    讲解JavaScript 基础语法.关键特性.JSON.WebAPI 等知识点.涉及网页窗口交互的方法以及通过 DOM 进行网页元素的相关操作. 文章目录 一.JavaScript 基础 1.什么是 ...

  5. JavaScript基础学习、复习笔记

    文章目录 前言 一.js基础知识 (变量.数据类型.运算符) 1.变量 1.1 声明变量及初始化 1.2 变量更新 1.3 变量语法拓展 1.4 变量命名 1.5 交换两个变量的值 2. 数据类型(重 ...

  6. JavaScript 基础学习笔记

    JavaScript 基础 一.初始 JavaScript 1.JS 注释 2.JS 输入输出语句 二.变量 1.变量概述 1)什么是变量 2)变量在内存中的存储 2.变量的使用 3.变量的初始化 4 ...

  7. javascript基础学习(六)

    javascript之对象 学习要点: 对象的属性和方法 对象的原型 一.对象 对象其实就是一种引用类型,而对象的值就是引用对象的实例. 二.创建对象 在javascript中有两种对象,一种是系统内 ...

  8. 前端JavaScript基础学习

    JavaScript 学习记录整理于:https://chinese.freecodecamp.org/learn. 一.变量 1.声明变量   在计算机科学中,数据就是一切,它对于计算机意义重大. ...

  9. 1.Javascript基础学习总结

    学习总结 javascript是运行在浏览器端的脚本语言,支持面向过程和面向对象的编程,typescript是对javascript的规范和增强,通过名字也能看出来是对type类型的规范和增强 jav ...

最新文章

  1. grpc 传递上下文_grpc 源码笔记 02:ClientConn
  2. WP8开发日志(1):Toolkit的本地化
  3. C语言退出多层嵌套循环技巧
  4. 记录一次java.lang.OutOfMemoryError: PermGen space异常
  5. DOM_06之定时器、事件、cookie
  6. 能量项链(NOIP 2006 提高组)
  7. QML笔记-TextEdit的使用
  8. LeetCode Search a 2D Matrix
  9. python直接使用pyc_关于python包,模块,.pyc文件和文件导入理解
  10. 安卓脚本用什么写_python脚本控制安卓手机,可以用来做什么你知道吗?
  11. 容器技术Docker K8s 30 容器服务ACK基础与进阶-弹性伸缩
  12. iPXE部署Ubuntu无盘系统
  13. 在线web魔方和在线AI象棋
  14. 2d unity 多物体 射线_Unity3D 之射线检测
  15. 基于AT89C51及Proteus仿真的室内火灾监测装置
  16. C#使用iTextSharp打印PDF
  17. 【转】在数学的海洋中飘荡
  18. 软件开发环境SDK安装及注意事项
  19. 产品3C认证证书暂停要怎么恢复,3C证书没有年审怎么办?
  20. 电路之网孔电流法和回路电流总结

热门文章

  1. 第二章:PSoc 4000 系列电容式触摸传感器之ALP滤波器
  2. 常见Linux服务的默认端口整理
  3. 如何利用Guitar Pro制作简单的尤克里里弹唱曲谱(一)
  4. Box2D在VS2010上面的配置
  5. 鼠标右击菜单,快捷键无法截到菜单栏
  6. 什么是周k线,月K线,年K线?周k线,月K线,年K线是什么意思
  7. 配置NTOP局域网流量监控
  8. 32g内存 java开发,阿里面试官:小伙子,你给我说一下JVM对象创建与内存分配机制吧...
  9. 美图Android编译速度优化实践指南
  10. 转发一篇在聚宽上看到的关于效用函数的好文章