JavaScript学习笔记(第一天)

##javascript我的笔记javascript

JavaScript的组成

JavaScript是一种运行在客户端的脚本语言html

  1. ECMAScript 标准----js的基本的语法
  2. DOM------Document Object Model 文档对象模型
  3. BOM------Browser Object Model 浏览器对象模型

###JavaScript是什么java

  1. 是一门脚本语言
  2. 是一门解释性语言
  3. 是一门动态类型的语言
  4. 是一门基于对象的语言

js和 html不同的是js是一门编程语言,而html是一门编程语言python

补充: 1,脚本语言和编译语言的区别 编译语言须要经过编译器编译成计算机可执行的而二进制程序(例如C语言) 脚本语言是不须要通过编译器的编译,就能够经过相应软件(例如浏览器)来直接运行的程序(例如shell,sql,cmd,js)web

脚本语言是经过解释器来,在脚本语言运行的过程当中进行逐行解释并运行的;也就是说只有程序运行的时候解释器才对脚本语言进行解释,于是脚本语言每执行一次,就须要编译一次,因此解释性脚本语言其运行的效率相对较低sql

2,java和python不是真正意义上的脚本语言和编译语言shell

java和python会将写好的源代码文件编译为对应的字节码文件(此步操做为编译的过程),随后在将字节码文件加载到虚拟机中,经过虚拟机中的解释器根据不一样的操做系统来对字节码文件进行解释,因此java和python都是一门先编译后解析的语言。编程

###JavaScript的起源浏览器

js原名不是JavaScript,而是LiveScript;webstorm

js和java没有任何的关系;

​ 世界上第一台浏览器是网景公司(NetScape)发明的Naviagtor浏览器

JS的做用:是解决用户和浏览器之间进行交互的问题

​ 在浏览器中,有一个JavaScript引擎,专门用来解析js脚本,以使js能够直接经过浏览器来运行

​ 同理浏览器还有还有引擎专门用来解析html和CSS的浏览器引擎(此处详见html的笔记)

JS的书写位置

js的代码能够分三个地方写: ​ 1.在html的文件中,script的标签中写js代码

<script>
    //js代码
    alert("锄禾日当午,地雷埋下土,小苏走过去,炸成二百五");//在页面中弹出对话框
 </script>

​ 2.js代码能够在html的标签中写----内嵌形式

<input type="button" value="按钮" onclick="alert('被点了');"/>

​ 3.在js文件中能够写js代码,可是须要在html的页面中引入 script的标签中的src="js的路径" ---外联形式

<script src="test.js"></script> //这是写在须要引入js的html文件中的

使用JS须要注意的几个问题:

1,若是在一对script标签中,若是有一行js的代码出现了问题,那么该行代码之后的语句也不会被执行

2,若是一对script标签中,若是js的代码出现了问题,其是不会影响其余script标签对的

3,script的标签中能够写什么内容 type="text/javascript"(标准写法)或者写language="JavaScript"(提升兼容性用)均可以

​ 可是在h5中 这是能够省略的(ps:若是是使用h4以前的严格模式或是使用h4的过渡模式的话,就必须为其加上上述属性)

4,有可能会出现这种状况:script标签中可能同时出现type和language的写法.

5,script标签在页面中能够出现多对

6,script标签通常是放在body的标签的最后的,有的时候会在head标签中,目前讲课的时候都在body标签的后面(即body中的最后面){若是将js的代码放置到html标签的外部,在浏览器解析的时候其也会将js放入到body的最后边的,可是这是增长浏览器的操做负担,因此是不提倡的}

7,若是script标签是引入外部js文件的做用,那么这对标签中不要写任何的js代码(就是写了,也不起做用。并且到了JQuery的时候,script标签中的代码会和外部文件产生冲突,从而致使代码出现错误),若是要写,从新写一对script标签,里面写代码

WebStorm使用小技巧:
在webstorm工具中打开页面:
    1. 右上角有浏览器图标,直接点击便可
    2. 快捷键: Alt+F2 回车或者上下键选择

###变量:

1.操做的数据都是在内存中操做

2.js中存储数据使用变量的方式(名字,值--->数据)

3.js中声明变量都用var---->存储数据,数据应该有对应的数据类型

4.js中的字符串类型的值都用双引号或者单引号

//变量声明
var name;
//变量初始化
name = "小黑";

注意的基本的代码的规范 ​ 1. js中声明变量都用var ​ 2. js中的每一行代码结束都应该有分号;(js书写的时候能够没有分号结尾,可是通常建议使用分号结尾) ​ 3. js中的大小写是区分的: var N=10; n ​ 4. js中的字符串可使用单引号,也可使用双引号,目前咱们暂时使用双引号

变量名的注意问题---变量名的命名规范,要遵循驼峰命名法 ​ 1.变量的名字要有意义, ​ 2.变量名有必定的规范:通常以字母,$符号,下划线开头,中间或者后面能够有$符号,字母,数字 ​ 3.变量名通常都是小写的 ​ 4.变量名若是是多个单词,第一个单词的首字母是小写的,后面的全部的单词的首字母都是大写的,这种命名方式称为:驼峰命名法 ​ 5.不能使用关键字(系统自带的一些单词,不能使用) ​ 6.不会单词用拼音,拼音也要遵循驼峰命名法

输出js的几个方法

var num = 100;
//1,在浏览器中以弹窗的形式输出数据
alert(num);
//2,在浏览器中的Console(控制台 快捷键为F12)中输出
console.log(num);
sublime使用小技巧:
1,格式化代码 Ctrl+Alt+L(使用该代码的前提条件是,本来的代码是正确的,没有错误的)

注释

1,单行注释 //

2,多行注释 /**/ {不能够嵌套使用}

数据类型

JS中数据类型有如下几种:

一,6大原始数据类型:

number(数字类型[整数和浮点数]) string(字符串类型) boolean(布尔类型)
null(空) undefined(未定义的) object(对象)

通常状况下 0表示假 非0值表示真

①.可能出现undefined的状况:

1,变量在定义后,没有赋值,那么输出的就是undefined

2,函数在调用后,没有返回值,可是却使用变量来接收了,此时也是undefined

②.NAN 表示的是not a number

③.使用typeof来获取变量的数据类型

使用形式有

​ typeof 变量名;

​ typeof (变量名);

var num = null;
alert(typeof num); //返回的是object
alert(String(num));//返回的是null
//在上述代码中,若是使用第二行代码,其表示的是一个没有存听任何值的对象,因此其返回的数据类型是object
//若是使用第三行代码,其表示的是将没有任何值的对象中的值取出来,并转换为字符串后输出,因此其返回的数据类型的是null

js能够表示除了二进制以外的全部进制

八进制以0开头 十六进制以0x开头

Number的数值范围

最小值:Number.MIN_VALUE,这个值为: 5e-324 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308 无穷大:Infinity 无穷小:-Infinity

数字类型有范围: 最小值和最大值
console.log(Number.MAX_VALUE);//数字的最大值
console.log(Number.MIN_VALUE);//数字的最小值
//小数由于精度而存在的BUG
 //不要用小数去验证小数.
//    var x=0.1;
//    var y=0.2;
//    var sum=x+y; //在js中0.1+0.2=0.300000000000000004
//    console.log(sum==0.3);//false

数值判断

  • NaN:not a number
  • NaN 与任何值都不相等,包括他自己
  • isNaN: is not a number
  • 可使用isNaN() 来判断须要比较的对象 其不是一个数字

字符串类型

补充知识点:转义字符

1, 字符串便可以使用单引号,也可使用双引号

2,获取字符串的长度 ====> str.length

//只要有一个是字符串,其余的是数字,那么结果也是拼接,不是相加
//若是有一个是字符串,另外一个不是字符串,使用- 号,此时会发生计算

//    var str1="10";
//    var str2=20;
//    console.log(str1+str2); //1020

//    var str1 = "10";
//    var str2 = 5;
//    //浏览器帮助咱们自动的把字符串类型转成了数字类型,这种方式叫:隐式转换(★)
//    console.log(str1-str2); //5

Boolean类型

  • Boolean字面量: true和false,区分大小写
  • 计算机内部存储:true为1,false为0

Undefined和Null

  1. undefined表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined
  2. null表示一个空,变量的值若是想为null,必须手动设置

数据类型转换

如何使用谷歌浏览器,快速的查看数据类型?

字符串的颜色是黑色的,数值类型是蓝色的,布尔类型也是蓝色的,undefined和null是灰色的

转换成字符串类型

  • toString()

    var num = 5;
    console.log(num.toString());
  • String()

    String()函数存在的意义:有些值没有toString(),这个时候可使用String()。好比:undefined和null
  • 拼接字符串方式

    num + "",当 + 两边一个操做符是字符串类型,一个操做符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串

转换成数值类型

  • Number()

    Number()能够把任意值转换成数值,若是要转换的字符串中有一个不是数值的字符,返回NaN
    也就是说只有所有都是数字的时候,Number方法才能够把须要转换的对象转换为数字,不然就会转换为NAN
  • parseInt()

    var num1 = parseInt("12.3abc");  // 返回12,若是第一个字符是数字会解析知道遇到非数字结束
    var num2 = parseInt("abc123");   // 返回NaN,若是第一个字符不是数字或者符号就返回NaN
  • parseFloat()

    parseFloat()把字符串转换成浮点数
    parseFloat()和parseInt很是类似,不一样之处在与
    	parseFloat会解析第一个. 遇到第二个.或者非数字结束
    	若是解析的内容里只有整数,解析成整数
  • +,-等运算

    var str = '500';
    console.log(+str);		// 取正
    console.log(-str);		// 取负
    console.log(str - 0);

转换成布尔类型

  • Boolean()

    0  ''(空字符串) null undefined NaN 会转换成false  其它都会转换成true