一个月入15K从事前端存留的JavaScript学习笔录(一)

目录

一、浏览器说明

二、网页、网站和应用程序

三、演示JavaScript的强大

四、JavaScript介绍

1. JavaScript是什么

2. JavaScript最初的目的

3.JavaScript和HTML、CSS的区别

4.JavaScript的组成

五、JavaScript的书写位置

六、变量

1.什么是变量

2.如何使用变量

3.变量在内存中的存储

4.变量的命名规则和规范

七、数据类型

1.简单数据类型

2. Number类型

3. String类型

4. Boolean类型

5. Undefined和Null

6.复杂数据类型

7.获取变量的类型

8.字面量

八、注释

1.单行注释

2.多行注释

九、数据类型转换

1.转换成字符串类型

2.转换成数值类型

3.转换成布尔类型

十、运算符

1.算术运算符

2.比较运算符:

3.逻辑运算符

4.赋值运算符

5.运算符的优先级

Js第一天学习总结

一、浏览器说明

浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。

可以显示页面的一个软件

国内网民计算机上常见的网页浏览器有,QQ浏览器、Internet Explorer、Firefox、Safari、Opera、Google Chrome、等,浏览器最经常使用的客户端程序。

常用的五大浏览器:chrome、Firefox、safari、ie、opera;

二、网页、网站和应用程序

网页:单独的一个页面

网站:一些列相关的页面组成到一起

应用程序:可以和用户产生交互,并实现某种功能。

三、演示JavaScript的强大

http://impress.github.io/impress.js/

http://naotu.baidu.com/

https://codecombat.com/

https://ide.codemao.cn/

需要翻墙

https://developers.google.com/blockly/

blockly迷宫

https://blockly-games.appspot.com

blockly迷宫不需要翻墙

https://blockly.uieee.com/

四、JavaScript介绍

1. JavaScript是什么

JavaScript编程语言   流程控制

Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。

JavaScript运行在客户端(浏览器)的编程语言

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

是一门动态类型的语言

是一门基于对象的语言

JavaScript的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

2. JavaScript最初的目的

最初的目的是为了处理表单的验证操作。

JavaScript现在的意义(应用场景)

JavaScript发展到现在几乎无所不能。

1.网页特效

2.服务端开发(Node.js)

3.命令行工具(Node.js)

4.桌面程序(Electron)

5. App(Cordova)

6.控制硬件-物联网(Ruff)

7.游戏开发(cocos2d-js)

3. JavaScript和HTML、CSS的区别

1. HTML:提供网页的结构,提供网页中的内容

2. CSS:用来美化网页

3. JavaScript:可以用来控制网页内容,给网页增加动态的效果

4. JavaScript的组成

ECMAScript - JavaScript的核心

定义了JavaScript的语法规范  JavaScript的核心,描述了语言的基本语法和数据类型,ECMAScript是一套标准,定义了一种语言的标准与具体实现无关

BOM -浏览器对象模型

一套操作浏览器功能的API

通过BOM可以操作浏览器窗口,比如:弹出框、控制浏览器跳转、获取分辨率等

DOM -文档对象模型

一套操作页面元素的API

DOM可以把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行操作

五、JavaScript的书写位置

写在行内

写在script标签中

<head>

 <script>

   alert('Hello World!');

</script>

</head>

写在外部js文件中,在页面引入

<script src="main.js"></script>

但是需要在html的页面中引入 script的标签中的src="js的路径"

注意点:引用外部js文件的script标签中不可以写JavaScript代码

注意问题

[if !supportLists]1. [endif]在一对script的标签中有错误的js代码,那么该错误的代码后面的js代码不会执行

[if !supportLists]2. [endif]如果第一对的script标签中有错误,不会影响后面的script标签中的js代码执行

[if !supportLists]3. [endif]script的标签中可以写什么内容 type="text/javascript"是标准写法或者写language="JavaScript"都可以

但是,目前在我们的html页面中,type和language都可以省略,原因:html是遵循h5的标准

[if !supportLists]4. [endif]有可能会出现这种情况:script标签中可能同时出现type和language的写法.

[if !supportLists]5. [endif]script标签在页面中可以出现多对

[if !supportLists]6. [endif]script标签一般是放在body的标签的最后的,有的时候会在head标签中,目前讲课的时候都在body标签的后面(body中的最后)

[if !supportLists]7. [endif]如果script标签是引入外部js文件的作用,那么这对标签中不要写任何的js代码,如果要写,重新写一对script标签,里面写代码

六、变量

1. 什么是变量

变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据

使用变量可以方便的获取或者修改内存中的数据

2.如何使用变量

var声明变量

var age;

同时声明多个变量

var age, name, sex;

age = 10;

name = 'zs';

var age;

同时声明多个变量

var age, name, sex;

age = 10;

name = 'zs';

变量的赋值

 var age;

age = 18;

同时声明多个变量并赋值

var age = 10, name = 'zs';

3. 变量在内存中的存储

变量---作用,存储数据的或者是操作数据

变量声明(有var 有变量名字,没有值)

变量初始化(有var 有变量名字,有值)

4. 变量的命名规则和规范

规则-必须遵守的,不遵守会报错

由字母、数字、下划线、$符号组成,不能以数字开头

不能是关键字和保留字,例如:for、while。

区分大小写

变量名必须有意义

遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。例如:userName、userPassword

不能使用关键字(系统自带的一些单词,不能使用)

变量的交换的

第一个思路:使用第三方的变量进行交换

第二种方式交换:一般适用于数字的交换

//扩展的变量的交换:只需要看代码,不需要理解---位运算

    var num1 = 10;

    var num2 = 20;

    num1 = num1 ^ num2;

    num2 = num1 ^ num2;

    num1 = num1 ^ num2;

    console.log(num1, num2);

七、数据类型

1. 简单数据类型

Number、String、Boolean、Undefined、Null

2. Number类型

十进制

var num = 9;

进行算数计算时,八进制和十六进制表示的数值最终都将被转换成十进制数值。

十六进制

var num = 0xA;

数字序列范围:0~9以及A~F

var num2 = 0x1;

console.log(num2); //1

var num5 = 0x0A;

console.log(num5); //10

var num6 = 0x0F;

console.log(num6); //15

var num7 = 0x10;

console.log(num7); //16

var num7 = 0x1f;

console.log(num7); //31

var num3 = 0x13;

console.log(num3); //19

var num4 = 0x15;

console.log(num4); //21

八进制

var num1 = 07;   //对应十进制的7

var num2 = 019;  //对应十进制的19

var num3 = 08;   //对应十进制的8

数字序列范围:0~7

如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析

var num4 = 015;

console.log(num4); //13

var num5 = 016;

console.log(num5); //14

var num6 = 017;

console.log(num6); //15

var num7 = 020;

console.log(num7); //16

var num7 = 022;

console.log(num7); //18 */

想要表示十进制:就是正常的数字

想要表示八进制:以0开头

想要表示十六进制:0x开头

-浮点数

浮点数的精度问题

浮点数

var n = 5e-324;   //科学计数法  5乘以10的-324次方  

浮点数值的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数

   var result = 0.1 + 0.2;    //结果不是 0.3,而是:0.30000000000000004

    console.log(0.07 * 100);

    不要判断两个浮点数是否相等

不要用小数去验证小数.

不要用NaN验证是不是NaN

不要使用NaN判断是不是NaN,应该使用isNaN(值或者是变量)

数值范围

最小值:Number.MIN_VALUE,这个值为: 5e-324

最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308

无穷大:Infinity

无穷小:-Infinity

数值判断

NaN:not a number

NaN与任何值都不相等,包括他本身

isNaN: is not a number  不是数字的数

3. String类型

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

字符串的长度

Length属性用来获取字符串的长度

var str = '黑马程序猿 Hello World';

 console.log(str.length);

字符串拼接

字符串拼接使用+连接

console.log(11 + 11);

console.log('hello' + ' world');

console.log('100' + '100');

console.log('11' + 11);

console.log('male:' + true);

1.两边只要有一个是字符串,那么+就是字符串拼接功能

2.两边如果都是数字,那么就是算术功能。

只要有一个是字符串,其他的是数字,那么结果也是拼接,不是相加

如果有一个是字符串,另一个不是字符串,使用- 号,此时会发生计算

浏览器帮助我们自动的把字符串类型转成了数字类型,这种方式叫:隐式转换

4. Boolean类型

布尔类型:的值有两个,一个是true(真),一个是false(假)

计算机内部存储:true为1,false为0

5. Undefined和Null

1. undefined表示一个声明了没有赋值的变量,

变量只声明的时候值默认是undefined

函数没有明确返回值,如果接收了,结果也是undefined

2. null表示一个空,变量的值如果想为null,必须手动设置

6. 复杂数据类型

Object

7. 获取变量的类型

Typeof

typeof变量名

typeof(变量名)

var age = 18;

console.log(typeof age);  // 'number'

8. 字面量

在源代码中一个固定值的表示法。

数值字面量:8, 9, 10

字符串字面量:'黑马程序员', "大前端"

布尔字面量:true,false

八、注释

1. 单行注释

用两个反斜杠表示

// 这是一个变量

单行注释:一般用在一行代码的上面

2. 多行注释

用来注释多条代码

多行注释:一般是用在函数或者是一段代码的上面

/*

var age = 18;

var name = 'zs';

console.log(name, age);

*/

九、数据类型转换

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

[if !supportLists]1. [endif]转换成字符串类型

.toString()

var num = 5;

console.log(num.toString());

String()

var num1 = 20;

console.log(String(num1));

String()函数存在的意义:有些值没有toString(),这个时候可以使用String()。

如果变量有意义调用.toString()使用转换

如果变量没有意义使用String()转换

var num2 = null;

console.log(num2.toString());  这是没有意义的使用toString会报错

var num2 = null;

console.log(String(num2));  而这种情况不会出现错误

比如:undefined和null

拼接字符串方式

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

[if !supportLists]2. [endif]转换成数值类型

Number():将其他类型转换为Number类型

注意:

1.Script-----》Number

只能是纯数字的字符串得到具体的值,其他都是NaN。

2.Boolean----》Number

true:1,false:0

3.undefined:NaN   null:0

parseInt() :将其他类型转换为Number类型--整数

注意:

1.Script-----》Number

字符串中的之首字符必须是数字,转换后才能得到具体值,否则NaN.

2.只转换从首字符开始的连续数字

3.除了字符串的其他类型转换后都得到NaN

var num1 = parseInt("12.3abc");  //返回12,如果第一个字符是数字会解析知道遇到非数字结束

var num2 = parseInt("abc123");   //返回NaN,如果第一个字符不是数字或者符号就返回NaN

parseFloat():将其他类型转换为Number类型--小数

注意:

1.Script-----》Number

字符串中的之首字符必须是数字,转换后才能得到具体值,否则NaN.

2.只转换从首字符开始的连续数字

3.除了字符串的其他类型转换后都得到NaN

4.如果小数后面的值是有效值,转换后就保留,否则删除。

var lx = parseFloat(1.51);

var lx2 = parseFloat(2);

var lx3 = parseFloat("1.51s");

var lx4 = parseFloat("sd1.51");

var lx5 = parseFloat("0.51");

- +,-0等运算

  var str = '500';

  console.log(+str); //取正

  console.log(-str); //取负

  console.log(str - 0);

总结:想要转整数用parseInt(),想要转小数用parseFloat()

想要转数字:Number();要比上面的两种方式严格

[if !supportLists]1. [endif]转换成布尔类型

Boolean():将其他类型转换为Number类型

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

自动类型转换:

在运行过程中根据编程语言的运算的语意环境,JavaScript会自动进行类型转换。

console.log(Boolean("dff"));  true

console.log(Boolean(34));    true

console.log(Boolean(-34));    true

console.log(Boolean(null));   false

console.log(Boolean(undefined));  false

console.log(Boolean(""));    false

十、运算符

1. 算术运算符

++:

前置++: ++变量

++a==》 a = a+1

注意:前置++和其他数据参与运算时,先自增1后运算

后置++: ++变量

a++ ===>  a = a + 1

注意:前置++和其他数据参与运算时,先运算后自增1

2. 比较运算符:

得到的结果要么为true,要么为false---都是Boolean值

==  !=  >  >=   <  <=     ===(全等于)   !==(不全等于)

==(等于):比较值的大小(判断)不比较值的数据类型  不严格

===(全等于):比较值的大小还比较值的数据类型   严格

!=(不等于):结果和==是相反的 如果==判断出结果为true  那么!=的结果为false

!==(不全等于):结果和===是相反的 如果===判断出结果为true  那么!==的结果为false

var lx = "12";

var lx2 = 12;

console.log(lx==lx2);  true

var lx = "12";

var lx2 = 12;

console.log(lx!=lx2);  false

3.逻辑运算符

&&:运算遇到false就返回

a && b,如果a 为true,直接返回b,而不管b为true或者false

如果a为false  那么直接返回。

||:运算遇到true就返回

a  ||  b,如果a  为  false ,直接返回b  ,而不管b为true或者  false

如果a为true ,直接返回,而不会继续往下执行。

null  0  ‘’ ""   undefined  NaN ====>false

!---逻辑非---取反--取非

!表达式1

表达式1的结果是true,整个结果为false

表达式1的结果是false,整个结果为true

[if !supportLists]1. [endif]赋值运算符

=   +=   -=   *=   /=   %=

var num = 0;

num += 5; //相当于  num = num + 5;

[if !supportLists]2. [endif]运算符的优先级

优先级从高到底

1. ()优先级最高

2.一元运算符  ++   --   !

3.算数运算符  先*  /  %   后 +   -

4.关系运算符  >   >=   <   <=

5.相等运算符   ==   !=    ===    !==

6.逻辑运算符 先&&   后||

7.赋值运算符

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352