草庐IT

JS课堂笔记(4.11-4.16)

web-ShiWen 2023-09-24 原文

一、简单了解JS

1. JavaScript(简称JS)是作为开发Web页面的脚本语言。

2. JS是从1995年由网景公司的布兰德开发。

3. JavaScript的标准是ECMAScript。

4. JS代码是从上往下执行的。

 二、变量

1. 变量名的值可以重复赋值(值可以修改),变量可以重复声明。

2. JS中“+”号很特殊,只要是和字符串相加都会变成字符串。

3. var声明(var n = 1;),其中var是声明关键字,n是变量名字,=是赋值号,1是值。

4. 变量规范:①名字可以包含字母,数字,_,$。 ②名字不能以数字开头,严格区分字母大小写。 ③名字不能使用关键字保留字。比如,var、if、for、in等。

5. JavaScript是轻量级解释型语言。

6. JS必须写在html页面里的script标签内,script标签一旦使用src加载了外部JS文件后,这个script标签里就不能写JS语句了。

<script   src="JS文件路径"></script>

7. JS有3种书写方式:行内式、内嵌式、外部式

8. 警告框:alert;

输入框:prompt;(输入框里的内容永远都是字符串)

问询框:confirm

9. 变量作用域:使用var声明的变量表示是局部变量,它的有效范围是当前作用域。

10. 特殊数值

JavaScript定义了几个特殊的数值常量:
①Infinity:无穷大。当数值超过浮点型所能够表示的范围;反之,负无穷大为-Infinity,可以说无穷大表示数值达到了计算机理解不了的位数(长度)。

②NaN:非数值。不等于任何数值,包括自己。如当0除以0时会返回这个特殊值,一般出现在其他值想要转化成数字的时候,有的值是无法转成数字的用NaN表示。

③Number.MAX_VALUE:js中最大的数字1.7976931348623157e+308

④Number.MIN_VALUE:5e-324

三、数据类型

1.基本/基础/原始/简单数据类型:

null:表示空值,不占据计算机的存储空间

undefined:表示变量定义了但未赋值

number:数字类型

string:字符串类型

boolean:布尔值类型(只有两个值,true和false)

2.null和undefined的区别是什么?

null表示值是空的;undefined表示变量已定义但未赋值

3.使用var和不使用var声明的变量有什么区别?

var声明的变量只在当前作用域生效

不使用var声明的变量全局生效

4.JS的特性之一:变量提升。将变量的声明提升至当前JS文件的最顶部。变量提升只是将声明提升,值留在原地。

目的是为了减少非标准使用下的报错。

5.JS的另一个特性——单线程,遇到报错就停止。

6.字符串必须使用单引号或双引号

字符串可以是空的字符串

字符串双引号或单引号里可以嵌套另外一种字符串的引号

字符串里空格也是占位的

7.获取字符串的长度:console.log(变量名.length)

8.“\n”表示换行;“\”转义符

四、判断数据类型

1.typeof:语法 typeof 变量名

null和数组类型会被判断为object,NaN会被判断为number。

2.constructor:语法 变量名.constructor

constructor是object的原型属性。undefined和null没有constructor属性,不能够直接读取,否则会报错。

3.toString:语法 toString()

toString可以检测所有数据类型,它能够返回当前对象的字符串表示。

4.测试发现,不同类型对象调用toString()方法时返回的字符串格式并不统一,这是因为不同类型的子类在继承object的原型方法toString时重写了该方法。如果在对象上调用object的原型方法toString(),就会返回统一格式的字符串表示。例如:

var  a  =  1;

var  b  =  "你好";

var  c  =  null;

console.log(object.prototype.toString.apply(a));

表示为“[object   Number]”

5.数据类型转换:隐式转换和显示转换

隐式转换:js自己做的类型转换。+,-,*,/,%等都是隐式转换。

显示转换:Number、toString、Boolean等js里内置的类都是显示转换。

6.转换为小数格式字符串:toFixed()

能够把数值转换为字符串,并显示小数点后的指定位数

7.parseInt是一个全局方法,它可以把值转换为整数。转换的过程如下:

①先解析位置0处的字符,如果不是有效数字,则直接返回NaN

②如果位置0处的字符是数字,或者可以转换为有效数字,则继续解析位置1处的数字,如果不是有效数字,则直接返回位置0处的有效数字。

③以此类推,按照从左到右的顺序,逐个分析每个字符,知道发现非数字字符位置。

④parseInt()将把前面分析合法的数字字符全部转换为数值并返回。

注意:浮点数中的点对于parseInt()来说属于非法字符,因此不会转换小数部分的值。

8.parseFloat()也是一个全局方法,它可以把数值转换为浮点数,即它能够识别第一个出现的小数点,而第二个小数点被视为非法。解析过程与parseInt()方法相同。

9.简单类型和引用类型:js中把数据分为简单类型值和引用类型值

简单类型值:存储在栈内存中,按值访问,可直接访问,访问速度快,占据空间小。

引用数据类型:存储在堆内存中,由多个值组成的数据我们称为引用数据类型(object,array),占据空间大,按共享访问。

五、运算符

1.表达式一定会有返回值:return

2.①“+、-、*、/、%”   数字运算符

②“>”大于号,求前面的值是否大于后面的值。

③“<”小于号,求前面的值是否小于后面的值。

④“>=”大于等于号,求前面的值是否大于等于后面的值。

⑤“<=”小于等于号,求前面的值是否小于等于后面的值。

⑥“!”非,取反,求反。

⑦“||”或,如果前面的值为true则不执行后面的,否则执行

⑧“&&”与,必须前后的值都为true,否则得到的是false

⑨“++”累加,每次给初始值+1

⑩“- -”累减,每次给初始值-1

3.三元运算语法:表达式或值  ?  为真的时候执行的结果  :   为假的时候执行的结果

三元运算有返回值⭐

4.“++”在前和“++”在后的区别:++在前先计算后赋值,++在后先赋值后计算。

5.“,”运算符,用来一次声明多个变量。

6.对象:无序数据的集合,使用键值对(属性名和属性值)的形式存储数据,用一对花括号包裹。键值对之间用逗号隔开。

7.数组:有序数据的集合,使用[ ]包裹值,每个值都是单独的,多个值用逗号隔开。使用数组里的数据用下标(索引)取,下标从0开始。

六、语句

1.语句规范

①分号“;”,请在每条可执行的语句后面添加分号。

②JavaScript会忽略多个空格,您可以向脚本添加空格,以增加可读性。

③JavaScript语句可以用花括号组合在代码块中。

2.if . else语句:

if (){真的} else {假的}(if求真,判断圆括号内的结果是不是真的,花括号表示代码块执行js语句的)

3.if和三元运算的区别:

①三元运算必须是“?”和“:”成对的;if可以单独使用。

②三元运算有返回值,if没有。

4.switch:流程控制语句的有一种写法。

语法:使用switch关键字调用,()里是匹配的值,匹配项是每一个case,写在{}内,每个case都应该给break用于终止向下执行。如果没有可匹配的项,最后应该给一个默认匹配项default。

5.switch、if和三元运算都是等同的一类语言,都是条件执行语句,语法不同,switch相对而言更加优雅。

有关JS课堂笔记(4.11-4.16)的更多相关文章

  1. ruby - 安装libv8(3.11.8.13)出错,Bundler无法继续 - 2

    运行bundleinstall后出现此错误:Gem::Package::FormatError:nometadatafoundin/Users/jeanosorio/.rvm/gems/ruby-1.9.3-p286/cache/libv8-3.11.8.13-x86_64-darwin-12.gemAnerroroccurredwhileinstallinglibv8(3.11.8.13),andBundlercannotcontinue.Makesurethat`geminstalllibv8-v'3.11.8.13'`succeedsbeforebundling.我试试gemin

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  4. ruby - ri 有空文件 – Ubuntu 11.10, Ruby 1.9 - 2

    我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da

  5. ruby-on-rails - Assets 管道损坏 : Not compiling on the fly css and js files - 2

    我开始了一个新的Rails3.2.5项目,Assets管道不再工作了。CSS和Javascript文件不再编译。这是尝试生成Assets时日志的输出:StartedGET"/assets/application.css?body=1"for127.0.0.1at2012-06-1623:59:11-0700Servedasset/application.css-200OK(0ms)[2012-06-1623:59:11]ERRORNoMethodError:undefinedmethod`each'fornil:NilClass/Users/greg/.rbenv/versions/1

  6. ruby-on-rails - Rails - 理解 application.js 和 application.css - 2

    rails新手。只是想了解\assests目录中的这两个文件。例如,application.js文件有如下行://=requirejquery//=requirejquery_ujs//=require_tree.我理解require_tree。只是将所有JS文件添加到当前目录中。根据上下文,我可以看出requirejquery添加了jQuery库。但是它从哪里得到这些jQuery库呢?我没有在我的Assets文件夹中看到任何jquery.js文件——或者直接在我的整个应用程序中没有看到任何jquery.js文件?同样,我正在按照一些说明安装TwitterBootstrap(http:

  7. ruby - rails 3.2.2(或 3.2.1)+ Postgresql 9.1.3 + Ubuntu 11.10 连接错误 - 2

    我正在使用PostgreSQL9.1.3(x86_64-pc-linux-gnu上的PostgreSQL9.1.3,由gcc-4.6.real(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1,64位编译)和在ubuntu11.10上运行3.2.2或3.2.1。现在,我可以使用以下命令连接PostgreSQLsupostgres输入密码我可以看到postgres=#我将以下详细信息放在我的config/database.yml中并执行“railsdb”,它工作正常。开发:adapter:postgresqlencoding:utf8reconnect:falsedat

  8. node.js - 如何在 Travis CI 上的一个项目中运行 Node.js 和 Ruby 测试 - 2

    我有一个包含多个组件的存储库,其中大部分是用JavaScript(Node.js)编写的,一个是用Ruby(RubyonRails)编写的。我想要一个.travis.yml文件来触发一个运行每个组件的所有测试的构建。根据thisTravisCIGoogleGroupthread,目前还没有官方支持。我的目录结构是这样的:.├──构建服务器├──核心├──扩展├──网络应用├──流浪文件├──package.json├──.travis.yml└──生成文件我希望能够运行特定版本的Ruby(2.2.2)和Node.js(0.12.2)。我已经有了一个make目标,所以maketest在每

  9. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  10. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

随机推荐