JavaScript高级程序设计——第3章 基本语法

《JavaScript高级程序设计》读书笔记 【1~7章】 文章目录1.Javascript简介1.1. ECMAScript1.1.1. ECMAScript简介1.1.2. ECMAScript兼容1.2. 文档对象类型DOM1.2.1. DOM简介1.2.2. DOM级别1.2.3. 其他DOM标准1.3. 浏览器对象类型BOM2. HTML中使用JavaScript2.1. < script >元素3. 基本概念3.1. 语法3.2. 数据类型3.3. 流控制语句3.4. 理解函数 1.Javascript简介 JavaScript是一种专为与网 阅读详情

多言一句:简书的笔记搬迁,这是第一篇。

3.1、 语法

  • 区分大小写
  • 标识符必须以字母、下划线或 开头,其他字符可以是字母、数字、下划线或 开 头 , 其 他 字 符 可 以 是 字 母 、 数 字 、 下 划 线 或 。建议用驼峰命名法,与ECMAScript内置的函数和对象命名格式保持一致
  • 注释风格同c语言
  • 严格模式 “use strict” ,是一个编译指示(pragma),在此模式下ECMAScript 3中一些不确定行为将得到处理
  • 语句结束的分号非必须但建议不要省略,控制语句中用代码块
var num = 3;
var num = 3     //正确,不推荐

if(a == b){     //正确,推荐使用
  return true;
}
  • 关键字和保留字
  • 变量的作用域问题

3.2、数据类型【undefined、null、number、string、boolean、object】

  • typeof操作符:可能返回undefined、boolean、string、number、object、function
  • undefined类型:使用var声明变量但未对其初始化
  • null类型:逻辑上看,null值表示一个空对象指针,这正是typeof null会返回“object”的原因。如果定义的变量准备在将来用作保存对象,最好初始化为null。

undefined值派生自null值

alert(null == undefined);  //true
  • boolean:只有两个字面值true和false

转型函数Boolean()

数据类型转换为true的值转换为false的值
booleantruefalse
string任何非空字符串“”/空字符串
number任何非零数字值(包括无穷大)0和NaN
object任何对象null
undefinedn/a(not applicable,不适用)undefined
  • number类型
进制

八进制字面值以0开头,然后是0~7;字面值中的数字超过8,前导0将被忽略,后面的数值将被当做十进制数解析;八进制字面量在严格模式下无效

var number1 = 070;//八进制的70
var number1 = 078;//十进制的78

十六进制:0x打头,后面是0~F/f


浮点数

最高精度17位小数
ECMAScript会将一些浮点数转换为整数

var float1 = 1.;   //整数1
var float2 = 10.0; //整数10

默认情况下,带有6个零以上的浮点数会被转换为以e表示法表示的数值。如0.0000003→ 3e-7
浮点数值计算会有舍入误差【IEEE754数值的浮点计数的通病】
0.1 + 0.2 的结果不是0.3,而是0.30000000000000004,而0.25+0.05不会有这样的问题


数值范围

ECMAScript能保存的最小数值保存在Number.MIN_VALUE中,最大值则在Number.MAX_VALUE。计算结果若超出js数值范围,会被转换成Infinity或-Infinity,该值无法参与后续计算。isFinite()函数在参数位于范围时,返回true。


NaN(Not a Number)

表示本来要返回数值的操作数未返回数值的情况,如任何数除以0,其他语言中会导致错误,而ECMAScript会返回NaN(理论上如此,但实际上正数除以0会返回Infinity,负数除以0返回-Infinity,只有0除以0返回NaN)
任何涉及NaN的操作,都返回NaN,NaN与任何值不相等,包括它本身
详细https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN


数值转换

Number(object) optional

var x1 = Number(true);       //1
var x2 = Number(false);      //0
var x3 = Number(new Date()); //the number of milliseconds since Jan 1,1970 UTC
var x4 = Numner("999");      //999
var x5 = Number("999 888");  //NaN
var x6 = Number("011");      //11【前导0会被忽略】

The function converts the object argument to a number that represents the object’s value.If the value cannot be converted to a legal number,NaN is returned.
parseInt(string,radix) required,optional

var a = parseInt("10");        //10
var b = parseInt("10.00");     //10
var c = parseInt("10.33");     //10
var d = parseInt("34 45 66");  //34
var e = parseInt(" 60 ");      //60
var f = parseInt("40 years");  //40
var g = parseInt("He was 40"); //NaN【忽略空格后,首字符不是数字】

var h = parseInt("10", 10);    //10
var i = parseInt("010");       //10 for ECMAScript 5
var j = parseInt("10", 8);     //8
var k = parseInt("0x10");      //16
var l = parseInt("10", 16);    //16

parseFloat(string) required
和parseInt差不多,读出一个完整的小数就结束

  • string类型

①字符字面量/转义序列:有“\”开头
②字符串的特点:字符串一旦创建,就无法改变,要改变某个变量中保存的字符串,要先销毁原来的字符串,再用新的字符串填充变量。
③转换为字符串的方法
toString()
String()

  • object类型

object类型是它的所有实例的基础,它所具有的任何属性和方法同样存在于更具体的对象中。
var o = new Object();
①constructor:保存用于创建当前对象的函数,上文的例子是Object()
②hasOwnProperty(prooertyName),
③isPrototypeOf(object)
④propertyIsEnumerable()
⑤toLocaleString()
⑥toString()
⑦valueOf()

3.3、操作符

一元操作符:++、–、+、-
位操作符(~、$、|、^)、左移<<、有符号右移>>、无符号右移>>>
布尔操作符!:返回结果只有两种false和true
乘性操作符*、/
求模%
加性操作符+、-
关系操作符>、<、<=、>=:注意类型转换顺序,先看能不能转成数字,再看字符串
相等操作符==、!=、===、!==
条件操作符?:
赋值操作符=(还有+=、*=、<<=等等)
逗号操作符:返回表达式中的最后一项

3.4、语句

if语句
do-while语句
while语句
for语句
由于ECMAScript不存在块级域,因此在循环内定义的变量,在外部也可以访问到。

var count = 10;
for(var i = 0;i < count;i++){
  alert(i);
}
**alert(i);  //10**

for-in语句
如果要迭代的对象的变量值为null或undefined,可能会抛出错误。ECMAScript 5更正了这一行为。使用for-in之前最好检测对象值
label语句
break、continue
with语句:将代码作用域设置到一个特定的对象中

with(location){
var qs = search.substring();
...
}
var qs = location.search.sunstring();

switch语句:可以使用任何类型,比较时使用全等(“===”)操作符,不会发生类型转换

3.5、函数

参数:ECMAScript中的参数在内部是用一个数组来表示的。在函数体中可以通过arguments对象【已废弃】来访问这个参数数组。但是arguments对象只是与数组类似,可以用方括号语法访问它的每一个元素(如arguments[0]访问第一个元素),用length属性确定传递了多少个参数。它不是Array的实例。
ECMAScript函数没有传统意义上的重载。如果定义了两个相同名字的函数,后面的函数会覆盖前面的。

第1章 JavaScript基本语法 JavaScript是一种前端编程语言,是一种运行在客户端(浏览器)的脚本语言。简称 js。 阅读详情

相关推荐

《JavaScript高级程序设计》读书笔记 23

《JavaScript高级程序设计》读书笔记 23 - 集合引用类型之Object、Array

qq_34911907的博客 1191

0122-1-JavaScript高级程序设计11-27章

Promise.prototype.then()为Promise实例添加状态改变时的回调函数。

qq_24428851的博客 1208

从SPI协议到文件系统:手把手教你用HAL库给W25Q16移植FATFS(附扇区管理优化方案)

本文详细介绍了如何在STM32平台上,通过HAL库的SPI接口为W25Q16 Flash芯片移植FATFS文件系统。文章从SPI通信基础讲起,深入解析了FATFS底层驱动(diskio.c)的移植要点,并重点探讨了针对W25Q16的4KB物理扇区特性进行扇区管理优化的两种方案,旨在帮助开发者构建稳定高效的文件存储方案。

happy2的博客 1043

javascript高级程序设计pdf_JavaScript高级程序设计(第4版)中文版终于出版了

最近发现JavaScript高级程序设计(第4版)的中文版上市了,回想当初看这本书的第2版、第3版,javascript的知识如泉水汩汩涌出,如饮甘怡般美妙。javascript的图书非常多,这本书最好。现在第4版上市,内心还有点小激动,但最终也没有买纸质版。不买的原因如下:有第2版跟第3版实体书第4版与第3版的差别,被其它javascript书补充了(下面会讨论有什么区别)。网上下载到了第4版英...

weixin_39959349的博客 1万+

threekingdoms.txt中文三国演义下载及实现人物出场统计

threekingdoms.txt全文下载:https://python123.io/resources/pye/threekingdoms.txt CalThreeKingdomsV1.py: #CalThreeKingdomsV1.py import jieba txt = open("threekingdoms.txt", "r", encoding = "utf-8").read() words = jieba.lcut(txt) counts = {} for word in words:

ZYYRWish_97的博客 1万+

基于 YOLO + SAM 的自动图像标注实战

摘要: 本文提出一种基于YOLO检测和SAM分割的自动化数据标注流水线方案,通过YOLO定位目标并生成检测框,再以检测框为提示驱动SAM完成精细分割,最终输出YOLO格式的标注文件。该方案将人工标注升级为半自动流程,显著提升标注效率,尤其适用于多类别、大规模图像的实例级标注需求。代码模块化设计支持模型灵活替换,并集成异常处理与进度可视化功能。虽依赖YOLO检测质量且对小目标存在局限,但作为工程落地方案,可有效降低私有数据集构建成本,适用于工业检测、遥感等场景的冷启动标注。

qq_64366203的博客 1147

JavaScript 第2章 基本语法

通过这些示例,读者可以更好地理解JavaScript的基本语法,并学会如何在实际的业务场景中应用这些语法。通过这些示例,读者可以进一步理解JavaScript中的变量声明、数据类型、运算符以及语句的使用,并且能够将这些基本概念应用于实际的业务场景中,如用户信息管理、表单验证、数据处理等。通过这些示例,读者可以更好地理解如何使用JavaScript进行数据处理、事件处理、动态生成HTML元素等操作,并将这些技术应用到实际的Web开发项目中。// 如果验证通过,可以继续处理表单数据。

hummhumm的专栏 1334

(数字图像处理MATLAB+Python)第五章图像增强-第一节:图像增强概述和基于灰度级变换的图像增强

图像增强(Image Enhancement):指不考虑图像降质原因,利用各种数学方法和变换手段,增强图像中人们感兴趣部分或提高有用的图像特征的清晰度。从图像质量来看,图像增强提高了图像的可懂度,改善了图像的视觉效果例如在现实场景中,针对那些对比度较差、视觉效果不好的图像,我们就可以利用图像增强改善视觉质量图像增强可分为如下几种基于灰度级变换的图像增强基于直方图修正的图像增强基于照度反射模型的图像增强基于模糊技术的图像增强基于伪彩色处理的图像增强其他图像增强方法分段线性灰度级变换。

快乐江湖的博客 3334

JavaScript高级程序设计(第5版):扎实的基本功是唯一捷径

不论从事什么,真正的高手都是把基本功练到炉火纯青的人,只有熟悉每个细节,熟练每个动作,才能在情况多变的实战中如肌肉记忆般灵活应对,从容不迫。学习JavaScript的最佳书籍是什么,不论十年前还是现在,都会得到一个答案 —《JavaScript高级程序设计》(红宝书)。

灵感干货铺 1601

55、Mac OS X 10.2 安装、设置、卸载及故障排除全攻略

本博客全面解析了 Mac OS X 10.2 的安装、设置、卸载及故障排除方法。内容涵盖四种安装方式的适用场景及操作步骤、设置助手的详细配置流程、卸载注意事项与恢复建议,以及常见问题和进阶故障的解决办法。通过图文并茂的形式,帮助用户快速掌握 Mac OS X 10.2 的基础与高级操作,是使用该操作系统的实用指南。

qsc90123456的博客 151

数据分析:蛋白质组的GO term的富集分析详解

在获取差异表达蛋白质的数据之后,依据蛋白质与基因的对应映射关系,开展GO(Gene Ontology)term的富集分析。通过这一分析流程,能够精准地识别出不同实验组中过表达基因所关联的显著富集的GO term通路。这些富集的GO term通路为后续的生物学研究提供了关键线索,有助于深入探究基因功能、揭示潜在的生物学机制,从而推动生物学发现的进程。

专注生信领域 1368

【JS】JavaScript高级程序设计-第三章基本概念

本文章为JavaScript高级程序设计第三版的重点学习笔记,从第三章开始学习提示:以下是本篇文章正文内容,下面案例可供参考基本数据类型: Undefined Null Boolean Number String;使用typeof 来判断基础数据类型typeof null 返回的是objectnull == undefined 但 null!NaN和任何值都不相等包括NaNJS 精度问题使用arguments对象来访问函数参数。

sobergyn的博客 999

078、镜头阴影校正:LSC算法原理与标定优化

文章摘要 镜头阴影校正(LSC)是手机影像系统中的关键技术,用于解决镜头渐晕效应导致的画面边缘暗角问题。本文详细分析了LSC算法的核心原理,包括非均匀网格划分、双线性插值等关键技术点,并揭示了标定流程中的常见陷阱(光源均匀性、灰卡反射特性、温度漂移)。文章还深入探讨了增益计算的工程实现细节,以及实际调优中的关键考量因素(色差校正、动态场景适应等)。作者结合15年经验,给出了包括验证方法、网格参数设计、产线标定等实用性建议,强调LSC算法应与光学设计协同优化,才能达到最佳效果。

sundong_81的博客 42

javascript高级程序设计 javascript权威指南

这篇文章主要介绍了javascript高级程序设计 javascript权威指南,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

chatgpt001的博客 1238

【maven】idea左侧External Libraries里,没有Maven的依赖包 代码飘红

文章目录1.概述M.参考 1.概述 因为内网开发,然后这几天我被隔离了,然后公司搞了一个外网的vpn能连接的云桌面,云桌面也是网络隔离的,因此只能自己拷贝相关的文件到里面。 然后我就拷贝了代码和maven仓库中的一部分,因为本地的20G一次拷贝不完,需要多次拷贝,但是我拷贝了kafka,仍然飘红。具体如下 idea左侧External Libraries里,没有Maven的依赖包 然后整了很久都没搞定,后来我自己新建了一个项目,然后引入发现是不可以的,而且框框里面的飘红。 然后我就想是不是因为缺少依赖

九师兄 4411

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

你是怎么看完《JavaScript权威指南》《JavaScript高级程序设计》等这类厚书的?

你是怎么看完《JavaScript权威指南》《JavaScript高级程序设计》等这类厚书的? 如果js属于刚刚入门阶段,不建议抱着书一直看下去,因为这样你不容易明白这些定义和概念的用法.看着看着就会很迷惑的。建议先试着用原生JS写一些小项目和小程序,然后试着写博客做些笔记,把遇到的困惑写下来,带着疑问去学习。 如果有一定的js基础或者用JQuery等一些库做过一些小东西的话,可以先看《JavaS...

weixin_42314466的博客 1412

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

第3章 JavaScript基本语法

第3章 JavaScript基本语法 JavaScript遵循ECMA-262标准,ECMA-262通过ECMAScript语言规范描述了JavaScript所有的基本概念。ECMAScript语法大量借鉴C及其他类C语言(如Java和Perl)的语法,如果读者熟悉这些语言,学习和使用JavaScript会比较亲切、轻松。 目前,ECMA-262第3版中定义的ECMAScript是各浏览器实现最多的JavaScript版本。ECMA-262第6版(ECMAScript 2015)是最新的正式版本,但该版

唯美清泠 903

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JavaScript交互式网页设计 • 【第1章 JavaScript 基本语法】

目录 1.1 JavaScript 概述 1.1.1 JavaScript 简介 1.1.2 JavaScript 的概念和执行原理 1.1.3 JavaScript 脚本代码的位置 1.1.4 实践练习 1.2 JavaScript 核心语法 1.2.1 变量 1.2.2 数据类型 1.2.3 JavaScript 注释 1.2.5 实践练习 1.3 顺序结构和选择结构 1.3.1 顺序结构 1.3.2 选择结构 1、if单分支语句: 2、if 双分支语句 3、if 多分.

杨明金的博客 5379

javascript高级程序设计pdf_Javascript高级程序设计第四版详细测评

本文视频版【红宝书】Javascript高级程序设计第四版详细测评_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com简介哈喽大家好, 我是大圣,上次做了一个js的书籍测评,评价还不错,在做css和node之前,再做几本书的详细推荐吧, 国庆今天又在家好好读了几本具有代表性的javascript高级程序设计【红宝书】javascript忍者秘籍你不知道的java...

weixin_39593744的博客 8872

《JavaScript高级程序设计第3章基本概念》笔记

3.1 语法 js的一切如变量,函数名,操作符都区分大小写。 3.1.2 标识符 首字符必须是字母或下划线或$,其他字符除了前面3个,还有数字。 3.1.3 注释风格 两种: //单行注释 /* * 多行注释 */ 3.1.4 严格模式 ES5引入了严格模式,在任意位置写上如下代码,即开启严格模式,严格模式下,某些代码执行会抛出异常。 "use strict"; 3.1.5...

夏商周 289

JavaScript基础01【简介、js编写位置、基本语法(6种基本数据类型)】

JavaScript基础【js简介、3种输出语句、js编写位置、基本语法、字面量和变量、标识符、6种基本数据类型(1、String 字符串;2、Number 数值;3、Boolean 布尔值;4、Null 空值;5、Undefined 未定义;6、Object 对象)】

upward 5709

《javascript高级程序设计》核心知识总结

此文是对js高级程序设计一书难点的总结,也是笔者在看了3遍之后的一些梳理和感想,希望能借此巩固js的基础和对一些核心概念有更深入的了解。摘要js基本的数据类型和关键点变量...

趣谈前端 998

【JavaScript】JS高级语法

变量与函数,作用域,定义变量,作用域链,闭包,预解析,let提升,函数参数,箭头函数,解构赋值,数组解构,对象解构,对象,字面量创建对象,构造函数,自定义构造函数,静态成员和实例成员,数据类型,引用类型,Object,Array,RegExp,包装类型,String,Number,Boolean,原型对象,原型链,this指向,普通函数,严格模式,箭头函数,改变函数的this指向,call,apply,bind,class关键字(类),封装,继承,浅拷贝,深拷贝

m0_64538862的博客 2808

JS(JavaScript)基本语法以及其它语法

JS

qq_43737870的博客 1620

JavaScript基本语法

JavaScript基本语法一·JavaScript简介1.JavaScript发展历史2.JavaScript的组成3.JavaScript的添加方式4.JavaScript的输出方式二·JavaScript基本语法1 .语法规范2.变量变量的声明3.数据类型4.运算符算数运算符赋值运算符字符串运算符比较运算符逻辑运算与类型运算位运算符5.语句选择语句循环语句跳转语句6.数组7.对象8.函数9.预编译三.总结 一·JavaScript简介 1.JavaScript发展历史 JavaScript是一种可嵌入

weixin_62859027的博客 3955

JavaScript高级程序设计第三版 第3章 基本概念

第3章 基本概念3.1 语法3.1.1 区分大小写3.1.2 标识符3.1.3 注释3.1.4 严格模式3.1.5 语句3.2 关键字和保留字3.3 变量3.4 数据类型3.4.1 typeof操作符3.4.2 Undefined类型3.4.3 Null类型3.4.4 Boolean类型3.4.5 Number类型1. 浮点数值2. 数值范围3. NaN4. 数值转换3.4.6 String类型1...

Hello 1375
上一篇: ES6学习笔记(三)——Promise对象
下一篇: JavaScript高级程序设计——第2章 在HTML中使用JavaScript元素
扬扬羊
博客等级 码龄9年 11粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值