JavaScript学习笔记(1)

主流浏览器

  • 这里再次强调一下主流浏览器,这不是一个程序员的基本素养,而是一个程序员的基础专业知识。

  • 要看他是否是主流浏览器主要看两点

  • 是否占有一定的市场份额

  • 是否有自己独立自主研发的内核

  • 主流浏览器

  • IE  trident

  • Chrome  webkit/blink

  • Firefox  Gecko

  • Opera  presto

  • Safari   webkit


js的引入方式

  • 外部引入

在外部在建立一个js文件然后使用script标签的src属性引入即可

JavaScript学习笔记(1)

  •  内部引入

在html页面上写script标签里面写入即可

JavaScript学习笔记(1)

  • 嵌入式

把JavaScript代码当作标签的属性来使用

JavaScript学习笔记(1)

 


js的基本语法

  • 定义:js是动态型的解释性语言,解释一行执行一行,不用通篇翻译,现翻译就现执行了

  • 注意:HTML和CSS都不算是编程语言,编程语言最基本就是要有变量。


下面来解释一下变量

  • JavaScript里面的变量使用关键词var来声明

  • 用=来给变量赋值(运算符的优先级要大于赋值符)

  • 变量就好比盛水的杯子,变量就是那个杯子,而往杯子里面加水的过程就是赋值的过程,那些水就是变量里面的数据。

变量的命名规则

  • 变量名必须以英文字母,下划线,$符号开头

  • 变量名必须包括英文字母,下划线,数字,而不能包含其他的字符

  • 变量名不可以使用系统的关键字,保留字来命名


数据的类型

原始值

  • 包括:Number Boolean String Undefined null

  • Number 数字类型 123

  • Boolean 布尔值类型 就两个值 true / false

  • String 字符串类型  "123" 带引号的

  •  Undefined 未定义类型 未定义的值

  • null  表示一种占位 没有具体的意义,表示空


  这里引入一个小故事关于布尔的:都知道计算机是基于数字0诞生的八位的01010101组成一个字符,而布尔就发现了其中的规律,并用布尔值里面的true来代表计算机里面的1,false来代表计算机里面的0,为我们以后的发展带来的巨大的方便,为了纪念他,就以他的名字来命名这一类数值。


引用值

  • array(数组)

  • Object(对象)

  • function(函数)

  • date(数据)

  • RegExp(正则)

  • .................


下面先来看两个例子

  • 第一个

JavaScript学习笔记(1)

猜猜看打印出的结果是什么?

JavaScript学习笔记(1) 

  • 下一个例子

JavaScript学习笔记(1)

  • 猜一猜arr和arr1的值?注意(里面哪个arr.push()语法含义是往arr里面哪个数组在丢一个数进去)

  • arr和arr1的值都改变了,都变成了1,2。

了解到

  • 原始值和引用值在计算机里面储存的位置是不一样的,那么我们就可以索性的知道。

  • 原始值存在于栈(stack)

  • 可以形象比喻为:往一个有底没盖的容器里面放东西,最先放进去的东西如果第二次再想拿出来的话,肯定是先把它上面的东西先拿出来,所以它是最后出来的。

 


  • 引用值存在于堆(heap)

  • 可以形象的比喻为:就好像在储物格里面存放东西,存放都有自己独立的空间谁都不干扰谁。


下面我们再进一步了解一下

  • 例子1

JavaScript学习笔记(1) 

猜猜打印出什么结果? 

打印出arr1的值为1,2

JavaScript学习笔记(1) 

 

  • 为什么后面的arr1值还是原来哪个arr的值呢?为什么它不是1,3呢?

  • 那么我们带着这一串问题再来了解一下堆和栈的区别

  • 使用引用值变量时,申请房间号是现在栈里面申请的,然后再把地址链接到堆里对应的数值里面。因为arr =[1,3]就等于向系统重新申请了一个房间,所以他的链接地址改变了。

  • 但是arr1链接还是原来的那个arr地址。所以最后总结,堆里面的变量链接的还是栈里面的变量地址。

 


js语句的基本规则

  • 语句后面都要用分号结束,函数,if循环,for循环后面不要加。

  • js语法错误会引发后续代码终止,但不会影响其他的代码块。

  • 注:一个HTML页面里面可以放很多个js代码,一个代码块错误不会影响另外一个代码块的运行。

  • 写格式要规范 =/+-两边都应该有空格。


运算操作符

+加号

  • 作用:运算时是加号,也可以用来作字符串连接作用

  • 例子1

JavaScript学习笔记(1) 

结果

JavaScript学习笔记(1) 

例子2

JavaScript学习笔记(1) 

结果

JavaScript学习笔记(1) 

  • 为什么++a和a++打印出来的结果是不一样的呢?

  • 先说一下a++的含义:

  • 在var  b = a++;这个式子代表意思是,先把a的值赋给b然后自身a的值再进行a++。

  • 再说一下++a的含义:

  • 在 var b = ++a;这个式子代表的意思是,先把a++然后再把这个值赋给b。


-减号

作用:运算时是减号


*乘号

作用:运算时是乘号


/除号

作用:运算时是除号 0/0返回NaN,1/0返回infinty无穷的

感谢你的阅读。

                                                                       JavaScript学习笔记(1)

                                                       可以微信搜索公众号“北杳同学”,关注我噢~里面有全部的前端笔记,还有很多前端的干货!