简介:

JavaScript是目前web开发中不可缺少的脚本语言,js是解释性语言,不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。

诞生于1995年,当时的主要目的是验证表单的数据是否合法。

JavaScript本来应该叫Livescript,但是在发布前,想搭上当时超热的java,临时把名字改为了JavaScript。(也就是说js跟java没有关系,当时只是想借助java的名气)。

特点:

  1. 交互性(它可以做的就是信息的动态交互)
  2. 安全性(不允许直接访问本地硬盘)
  3. 跨平台性(只要是可以解析js的浏览器都可以执行,和平台无关)

核心

(1)核心(ECMAScript):这一部分主要是js的基本语法。

(2)BOM:Brower Object Model(浏览器对象模型),主要是获取浏览器信息或操作浏览器的,例如:浏览器的前进与后退、浏览器弹出提示框、浏览器地址栏输入网址跳转等操作等。

(3)DOM:Document Object Model(文档对象模型),此处的文档暂且理解为html,html加载到浏览器的内存中,可以使用js的DOM技术对内存中的html节点进行修改,用户从浏览器看到的是js动态修改后的页面。(增删改查)

书写的3种方式

  1. 内嵌式:
    理论上js可以书写在页面的任意位置。
<script>
        // js标签内的js代码
        alert('Hello World!');
</script>
  1. 外链式:
    首先新建一个文件类型为.js的文件,然后在该文件中写js语句,通过script标签对引入到html页面中。
<script src="js文件路径地址">这里不能写js语句</script>
  1. 行内式:
    直接书写在标签身上,是一个简写的事件,所以又称之为事件属性。 onclick单击事件
<input type="button" value="点我" onclick="alert('木有');">
<button onclick="alert('恭喜你,一个对象到手');">点我</button>

注释

两种注释:单行注释和多行注释,注释是用于表示解释代码的,并不会被执行,是给我们程序员看的,方便增删改查……

//我是一个单行注释

/*
我是
一个
多行
注释
*/

变量

<script>
        //定义变量
        var num = 1;
        var name = 'liusen'
    </script>

万物皆var

  • js是弱类型语言,声明的变量在赋值之前,并不知道是什么数据类型,赋值之后就会判断其数据类型
  • 没有赋值的变量返回的是undefined,表示空

命名规范:

  • 首字符可以是数字,下划线,美元符号,不可以是数字,其他字符可以是数字,字母,下划线,$……
  • 以$开头的一般是jQuery库或者其他类库声明的变量
  • object是对象类型的命名,变量以o开头
  • 首字符是下划线的一般表示私有变量
  • 驼峰命名,有多个单词时,从第二个单词开始首字母用大写
  • 不推荐使用中文或拼音,尽量通用且见名之意

条件控制

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
        //定义变量
        var num = 79;
        var name = 'liusen'
        //条件控制
        if(num>60 && num<70){
            alert('及格');
        }else if(num>70 && num<80){
            alert('良好');
        }else{
            alert('其他');
        }
    </script>
</head>
<body>   
</body>
</html>

运行结果:

javascript多久 javascript速成要多久_前端

注意:Javascript是严格区分大小写的

调试:浏览器打开----检查-----控制台

Elements:元素

Console:控制台

Sources:源码,调试

Network:网络

Application:应用

javascript多久 javascript速成要多久_编程语言_02

打断点调试


数据类型

number:js不区分整数和小数

123		//整数
123.3	//浮点数
123e3	//科学计数法123000
-99		//负数
NaN		//not a number
Infinity//无穷

字符串

'abc'   "abc"
'\n'

布尔值

false
true

逻辑运算

&&		//两个都为真,结果为真
||		//一个为真,结果为真
!    	//真即假,假即真

比较运算符⭐⭐⭐

=		//赋值
==		//等于,类型不一样,值一样,也会判断为true
===		//绝对等于,类型一样值一样,才会判断为true

这是一个js的缺陷,坚持不要用==比较

  • NaN与所有的数值都不相等,包括自己
  • 只能通过 isNaN(NaN)来判断这个数是否是NaN

浮点数问题:

javascript多久 javascript速成要多久_js_03

尽量避免使用浮点数进行运算,存在精度问题

Math.abs(1/3-(1-2/3))<0.000000001

null和undefined

  • null 空
  • undefined 未定义

数组

Java的数组必须是相同类型的,js中不需要这样!

//保证代码的可读性,尽量使用[]
var arr = [1,2,3,4,5,'hello',null,true];
new Array(1,2,3,4,5,'Hello');

数组下标越界,会:

javascript多久 javascript速成要多久_javascript多久_04

对象

var person = {
            name:"liusen",
            age:3,
            ta:['js','CSS','html']

        }

对象是一个大括号,数组是中括号

每个属性之间用逗号隔开,最后一个不需要添加

娶对象的值:

person.age
> 3
person.name
> "liusen"