js基础

1:变量,创建变量的几种方式

var、function、let、const 、import、class

import: 基于es6的模块规范导出需要的信息

class:基于es6创建类

2:变量命名

严格区分大小写、遵循驼峰命名法、下划线在前边一般都是公共变量,$开头一般是存储的是jq元素(不能以数字开头、不能是关键字、)

3:js 数值类型

基本数据类型:number \ string \ boolean \ null \ undefined

NAN 代表的不是一个数字,但是类型属于number

引用数据类型:普通的对象、日期对象、数组对象、正则对象、

es6新增的数据类型symbol(唯一的值)

4:isNaN : 

                  基本数据类型先将对象的值用Number()转换,再调用isNaN,字符串中出现任何非有效数字字                     符均为 NaN

                   引用数据类型,先调用toString转为字符串,然后再把字符串调用Number转为数字

Number(true)  ->1

Number(false) ->0

Number(null) ->0

Number(undefined) -> NaN

对象:

 ({}).toString() = "[object Object]"  ->NaN

数组:

([12,23]).toString() = "12,23"   ->NaN

([12]).toString() = "12"   ->12

正则、函数:都是NaN

isNaN([]) -> false    因为Number(" ") =0;  ([]).toString = " ";

5:Number() 和parseInt() parseFloat()

共同点:都是为了将其他类型的值转为数字类型,

区别:Number出现任何非有效数字字符,结果就是NaN,parseInt把一个字符串中的整数部分解析出来,parseFloat是将字符串中的小数部分(浮点数)解析出来

6:如何将其他数据类型转为布尔类型  Boolean、!、!!

Boolean(1)  -> 数字类型的只有0和NaN返回false,其他都是true

! -> 取反:先把其他数据类型转为布尔类型,再取反

!!->两次取反,相当于直接转换布尔类型

在js数据类型中只有0/" "空字符串/null / undefined/ NaN 这五种返回false,其余都转换成true;

7: null和undefined

null: 空对象指针,一般都是意料之中的没有(人为先赋值为null,后面程序中再赋值)

undefined: 未定义,代表没有,一般都不是人为手动控制的,大多数都是浏览器自主为空(后面可以赋值也可以不赋值)

8:对象数据类型(对象由键值对组成的)

键值对的操作:

1)【获取值】,obj.name、obj['name']   一般来说,对象的属性名 都是字符串格式的;

2)【增/改】js对象中属性名是不允许重复的,是唯一的

3)【删】

彻底删除,对象中不存在这个属性了

delete

假删除,并没有移除这个属性,只是这个属性值为空

obj.name = null;

在获取属性值时候,如果当前对象有这个属性名,则可以正常获取到值,哪怕是null,如果没有这个属性名,则获取值为undefined;

属性名只能是字符串或数字类型,如果不是,则先转为字符串(toString),然后再进行存储,

获取值时,也是先将其他类型值转为字符串再取值;

4)数组,数组的属性名是数字

9)js的运行机制

1)当浏览器(它的内核/引擎)渲染和解析js 的时候会提供一个供js运行的环境,我们把这个环境称之为“全局作用域(global / window scope)”

2)代码自上而下执行(之前会有个变量提升过程)

基本数据类型会存储在当前作用域下;

var a= 1;

1:开辟一个空间存储1

2:在当前作用域声名一个变量a(var a)

3:让声名的变量和存储的1关联起来(把1赋值给a,赋值操作叫定义)

@:基本数据类型(也叫值类型),是按照值来操作的,是将之前的值复制一份,放到新的空间或位置上,之后的操作和之前的值没有关系,按值操作就是为了让两个空间没有任何关系

@:引用数据类型不能直接存储在当前作用域下(因为存储的数据可能过于复杂)我们需要开辟一个新的空间(理解为仓库),把内容存储在这个空间中;

var obj1 = { a: 1};

1:首先开辟一个内存空间,将键值对依次存储起来(为了后面能找到这个空间,此空间有个16进制的地址)

2:声名一个变量

3:让变量和空间地址关联起来(把空间地址赋值给变量)

引用类型不是按值来操作的,它操作的是空间的引用地址,把原来空间的地址赋值给新的变量,但是原来的空间没有被复制,还是一个空间,这样就会出现多个变量关联的是相同的空间,相互之间就会存在影响了

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

推荐阅读更多精彩内容