javascript 基础

       接触过一些javascript的知识,但是感觉总是很肤浅,从12.28开始,决定从头好好学习一下javascript,所用的参考书是《JavaScript高级程序设计》。 
        以下是我在复习的过程中,感觉很重要的知识点,具体如下: 

引用
ECMAScript的解释程序遇到未声明过的标识符的时候,用该变量名创建一个全局变量,并将其初始化为指定的值。

      typeof运算符 
引用
对变量或值调用typeof运算符将返回下列值之一: 
       "undefined",如果变量是Undefined类型; 
       "boolean",如果变量是Bollean类型; 
       "number",如果变量是Number类型; 
       "string",如果变量是String类型; 
       "object",如果变量是一种引用类型或Null类型; 

你也许会问,为什么type运算符对与Null值也返回object,这实际上是JavaScript最初实现的中的一个错误,然后被ECMAScript沿用了,现在null被认为是对象的一个占位符,从而解释了这个矛盾,但从技术上讲,它仍然是原始类型。 

        Undefined类型只有一个值,那就是undefined,当声明的变量未初始化时,该变量的默认值是undefined; 
        Null类型也只有一个值,即null,是一个字面量,值undefined实际上是从值null派生出来的,因此ECMAScript把他们定义为相等的。 
Javascript代码 
  1. alert(null==undefined);     //output:true  

        尽管这两个值是相等的,但他们的含义不同;undefined是声明了变量但是未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象,如果函数或方法返回的是对象,那么找不到该对象时,则返回null; 
        Number类型有三个特殊的值,Number.MAX_VALUE和Number.MIN_VALUE,他们定义了Number类型变量的边界。另外一个特殊值就是NaN,表示非数(not a number),NaN是个奇怪的特殊值,一般说来,这种情况发生在类型(String,Boolean)转换失败时。NaN的另一个奇特之处在于:它与自身不相等,这意味着下面的代码将返回false:
Javascript代码 
  1. alert(NaN==NaN);     //output:false  

        由于这种原因,我们不推荐使用NaN值本身,函数isNaN()就可以做的很好:
Javascript代码 
  1. alert(isNaN("blue"));     //output:true  
  2. alert(isNaN(123));     //output:false  

类型转换 
(1)、转换成字符串 
        ECMAScript的Boolean值,数字和字符串的原始值的有趣之处在于他们都是伪对象,这意味着他们实际上具有属性和方法,例如,字符串的长度,如下: 
Javascript代码 
  1. var color = "blue";  
  2. alert(color.length);   //output:4  

引用
总而言之,三种主要的原始类型(Boolean,String,Number)都有toString()方法,ECMAScript定义所有对象都有toString()方法,无论它是伪对象,还是真的对象。

        Boolean类型的对象的toString()方法只是输出"true"和"false"; 
        Number类型的对象的toString方法比较特殊,有两种模式:默认模式(toString())和基模式(toString(2)、toString(8)、toString(18));默认模式无论数字是什么模式,都默认输出10进制数字,而采用基模式会输出对应的进制表示: 
Javascript代码 
  1. var m = 10;  
  2. var n = 10.0;  
  3. alert(m.toString());    //output:10  
  4. alert(n.toString());    //output:10  
  5. var iNum = 10;  
  6. alert(iNum.toString(2));    //output:1010  
  7. alert(iNum.toString(8));    //output:12  
  8. alert(iNum.toString(16));   //output:a  

        对数字调用toString(10)和toString()方法,效果一样。 
(2)、转换成数字 
        ECMAScript提供两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat();前者把值转换成整数,后者把值转换成浮点数;只有对String类型的数据调用这两个方法,它们才会被正确执行,对其他类型都返回NaN。 
引用

        对于这两个方法,在判断字符串是数字值的过程中,paraeInt()和parseFloat()都会仔细分析该字符串,paraeInt()方法会首先查看位置0处的字符,判断它是否是个有效数字,如果不是,该方法会直接返回NaN,不再继续执行其他操作。但如果该字符是个数字值,则会继续查看位置1处的字符是否是个数字值,以此类推,直到最后,这一过程会持续到发现非有效数字的字符为止,不过字符串“22.5”会被转换为22,因为对于整数来说,小数点是无效字符,举例如下: 
Javascript代码 
  1. var m = "1234blue";  
  2. alert(parseInt(m));   //output:1234  
  3. var n = "22.5";  
  4. alert(parseInt(n));   //output:22  


        parseInt()方法也有基模式,可以把2进制,8进制,16进制的字符串转换成整数,基是parseInt()方法的第二个参数指定的,举例如下: 
Javascript代码 
  1. alert(parseInt("10",2));   //output:2  
  2. alert(parseInt("10",8));   //output:8  
  3. alert(parseInt("10",16));  //output:10  

        parseFloat()方法的用法与parseInt()方法基本上相同,特殊的是parseFloat()方法里面的字符串数值必须是10进制表示(该方法会忽略其他进制前边的0)。 
(3)、强制类型转换 
        使用强制类型转换可以访问特定的值,即使它是另一种类型,ECMAScript可以使用一下3中强制类型转换: 
Boolean(value)——把给定值转换成boolean类型 
Number(value)——把给定值转换成number类型 
String(value)——把给定值转换成string类型 
        用这三个函数之一进行转换,将创建一个新值,来存放由原始值转换后的新值。 
        当要转换的值是至少有一个字符的字符串、非0数字和对象时,Boolean()函数将返回true;如果该值是空字符串、数字0,null、undefined,它将返回false; 
Javascript代码 
  1. alert(Boolean("kongxin"));   //output:true  
  2. alert(Boolean("123"));   //output:true  
  3. alert(Boolean("new Object()"));  //output:true  
  4. alert(Boolean(""));  //output:false  
  5. alert(Boolean(0));   //output:false  
  6. alert(Boolean(null));   //output:false  
  7. alert(Boolean(undefined));   //output:false  

        Number()强制转换时和parseInt()、parseFloat()大致相同,只是它转换的是整个值,而不是部分值,举例如下: 
Javascript代码 
  1. alert(Number(false));   //output:0  
  2. alert(Number(true));   //output:1  
  3. alert(Number(undefined));  //output:NaN  
  4. alert(Number(null));  //output:0  
  5. alert(Number("5.5"));   //output:5.5  
  6. alert(Number("5.5.6"));   //output:NaN  
  7. alert(Number(undefined));   //output:NaN  
  8. alert(Number(new Object()));  //output:NaN  

        最后一种强制类型转换是String(),它可以把任何值转换成字符串;强制转换成字符串和调用toString()方法唯一不同的是:对null值和undefined值强制类型转换,可以生成字符串,而不会错误: 
Javascript代码 
  1. alert(String(null));    //null  
  2. alert(String(undefined));     //undefined  
  3. alert(null.toString());     //没有输出  
  4. alert(undefined.toString());    //没有输出  
JavaScript入门一(JS基础知识) 文章目录一、JavaScript是什么二、网页组成2.读入数据总结 一、JavaScript是什么        JavaScript(简称“JS”)百度解释如下: 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。   & 阅读详情

相关推荐

JavaScript的起源?不同的JavaScript和引擎?JS版本发展史?

1995年,JavaScript诞生了。不得不提到它的标准ECMAScript, 它是一个语言标准,而非具体的语言。JavaScript除了名字有”Java”, 其它和Java没任何关系。Netscape为推广自家的LiveScript,命名中包含当时最流行的编程语言Java来蹭蹭热度。Netscape公司有些人可能不熟悉, 它就是早期被IE做浏览器对抗后来逐渐消亡一家公司。

编程语言开发、框架原理、编程思想、最佳实践技巧经验分享。致力于各种编程技术的技巧经验干货分享,讲解开发避坑技巧,追踪开发前沿技术,实战展开解决难题。 程序员小迷助您在编程路上越走越好! 2159

JavaScript基础入门,JS基础,JS入门

JavaScript简介,使用JavaScript,行内代码,内部代码,外部代码,理解Window对象,Window对象的方法,Window对象的属性,JavaScript语法,标识符,关键字,注释,代码规范,变量,定义变量,变量声明的提升,数据类型,原始类型,引用类型,监测数据类型,数据类型转换,算数运算符,辅助运算符

非歪的博客 597

深入掌握JavaScript Node.js开发

本文还有配套的精品资源,点击获取 简介:JavaScript是前端开发中的主导语言,在Node.js环境下的服务器端编程中也显示出重要性。Node.js是一个基于V8引擎的跨平台JavaScript运行环境,具有事件驱动和非阻塞I/O特性,适用于构建高性能的并发服务器。该压缩包文件可能包含有关Node.js核心概念和模块的资料,比如模块化设计、文件系统操作、HTTP服务器创...

weixin_28809949的博客 2085

【JavaScript】01-初始JS基础

渲染引擎:用来解析HTML和CSS,俗称内核,如chrome中的blink,老版本的webkit。是一种运行在客户端(自己的电脑,非远程服务器)的脚本语言(script是脚本的意思)。JS引擎:俗称JS解释器,读取网页中的JS代码,处理后运行,比如chrome中的V8。双标签,添加src链接到新创建的my.js内,最后在html页面运行。注意单双引号的使用:HTML中推荐用双引号,JS中推荐用单引号。举例,实际操作可以忽略,只是展示行内的形式。行内式的JS不建议使用,特殊时使用。

2301_76662826的博客 829

RGB接口电容触摸屏驱动(二)接口与时序说明

RGB接口电容触摸屏驱动(二)接口与时序说明

杰克拉力船长个人博客 4917

pdf.js 移动端手势缩放功能实现与原生事件集成

本文详细解析了如何为pdf.js的viewer.html移动端页面实现流畅的双指捏合手势缩放功能。通过深入分析pdf.js的缩放机制,并利用原生触摸事件(touchstart、touchmove、touchend)进行集成,在不修改核心源码的前提下,为用户提供媲美原生应用的顺滑缩放体验,有效提升了移动端PDF阅读的专业性和用户满意度。

brandy的博客 488

Node.js和Javascript的异同

JavaScript的组成: ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象) DOM(一些操作页面元素的方法) BOM(一些操作浏览器的方法) Nodejs的组成: ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象) os(操作系统) file(文件系统) net(网络系统) ...

【小石头的茅坑】 71万+

STM32与FreeRTOS:基于TIM6的高精度系统时间获取实践

本文详细介绍了在STM32与FreeRTOS环境下,基于TIM6定时器实现高精度系统时间获取的实践方法。通过复用FreeRTOS的TIM6硬件资源,开发者可以高效获取毫秒级和微秒级系统时间,同时解决时间溢出和中断处理等关键问题。文章还提供了CubeMX配置技巧、代码实现及性能优化建议,适用于嵌入式系统开发中的精确时间管理需求。

weixin_29169505的博客 357

Js基础_初识JavaScript

文章目录一、JavaScript是什么?二、Js作用三、浏览器执行Js 一、JavaScript是什么? 是一种运行在客户端的脚本语言(不需要编译,运行过程中由解释器逐行来进行解释执行) Node.js可以进行服务端编程 二、Js作用 1.表单动态校验(密码强度检测) 2.网页特效 3.服务端开发(Node.js) 4.左面程序(Electron) 5.App/小程序(Cordova) 6.控制硬件-物联网(Ruff) 7.游戏开发(cocos2d-js) 三、浏览器执行Js 浏览器分为两个部分 渲染引擎

认真,努力,记录学习 7356

NXP MCU CAN波特率(位时间)配置详解

1. 概述 本文将会详细讲解如何设置NXP MCU的CAN波特率、位时间、采样点等属性。 波特率即CAN总线传输频率,位时间是波特率的倒数,例如波特率是500K,那么位时间 = 1 / 500000 = 0.000002s = 2000ns。 我们先来看一下S32K144单片机的EB中与CAN总线波特率相关的可配置参数有哪些: ...

weixin_42967006的博客 9690

从零到一:RagFlow源码架构深度解析与二次开发实战指南

本文深入解析RagFlow源码架构,提供从环境搭建到二次开发的全流程实战指南。作为企业级AI搜索框架,RagFlow通过模块化设计和多模态处理能力,支持自定义智能体开发与文搜文档功能,帮助开发者高效构建智能搜索系统。

w1x2y3的博客 267

【js】javaScript基础

js基本语法: (1)js语言在网页中出现的位置: js可以直接嵌入到网页中去写,也可以进行页面分离面,面。若进行页面分离后,引入外部文件用<script src=""></script> 如果写在同一页面中,可以写在head标签里也可以写在body里面 <script type=&q

weixin_43689100的博客 563

树冠体积计算之体元累加法

因为是自己之前研究的一个方向,就复现了一下论文中的这个方法,在此正好记录一下。 文章目录一、简介二、代码实现(MATLAB)三、小结 一、简介 简而言之,其实就是一句话,即以固定大小的体元模拟不规则的树冠形状。按照论文中的思路主要就是将树冠沿树高方向以 k 为步长进行等距离分段,把每一段树冠的点投影到垂直于树高方向的平面上,再对该平面划分成大小为 k × k 的像元,根据投影到各个像元内点的数量,判断该像元的有效性,统计有效像元的数量 T,则树冠体积为 T 个 k × k × k 的体元之和。如下图所示:

dayuhaitang1的博客 2605

黑马JS教程笔记(JavaScript教程)——JS基础

<head><title>JavaScript练习</title></head><body><script></script></body>

Dontla的博客 2653

C语言关键字static的绝妙用途

为什么要说static妙,它确实是妙,在软件开发或者单片机开发过程中,大家总以为static就是一个静态变量,在变量类型的前面加上就自动清0了,还有就是加上static关键字的,不管是变量还是关键字,在局部变量中,变量仅限于局部可见,在全局区中,static变量或函数仅限于本文件可见,当然还有一个重要的特性被忽略了。。。。       就是static修饰的局部变量 它的数值 是上一次函数调用结

Bruce.yang的嵌入式之旅 5376

C#【通用方法】字节数组添加、移除、获取的方法类(妙用List<byte>,开发中常用)

C#【通用方法】添加移除字节的方法类(妙用List,开发中常用)

星Yeah 的博客 3358

有 JavaScript 基础,怎么学习 Node.js

转自:知乎(侵删) 不知道题主所说的 JavaScript 基础具体有多少。JavaScript 本身是一门很完备(虽然坑也不少)的编程语言,有不少人随便用用 jQuery 就说自己有 JavaScript 基础,而对 JavaScript 的闭包,内存管理,原型链等特征的了解很少。 如果你真的对 JavaScript 这门语言很了解的话,那么可以给你省一些时间——你不用再去学习 Ja

hellochenlu的博客 701

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Next.js, Node.js, JavaScript, TypeScript 的关系

【代码】Next.js, Node.js, JavaScript, TypeScript 的关系。

坚持输出,记录成长。 1718

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

node.js和javascript的关系

node.js是一个基于 Chrome V8引擎的 JavaScript 运行时环境 一、类比JavaScript和java JavaScript java V8 JVM node.js JRE JavaScript和java都是一门编程语言,至于两者的关系,是雷锋和雷峰塔的关系 V8是google开源的JavaScript引擎,用于执行JavaScript,...

【小石头的茅坑】 71万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

前端——JavaScript(JS)代码基础

前端中的JavaScript代码基础

2402_88087197的博客 2887

初识JavaScript——JS

目录 1.认识JS 1.1JavaScript是什么 1.2JS的作用 1.3 HTML/CSS/JS的关系 1.4 浏览器执行JS 1.5JS的组成 1.6JS书写位置 1.7JS注释 1.8JS输入输出语句 2.变量 2.1变量的理解和储存 2.2变量的使用 2.3变量语法拓展 2.4声明变量的特殊情况 2.5变量的命名规范 1.认识JS 1.1JavaScript是什么 1.JS是一种 运行在客户端的脚本语言。 2.脚本语言不需要编译,在运行过程中有J.

孙宇航的博客 3029

node.js和JavaScript的关系

1. 什么是node.js node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时的环境。 2. 什么是JavaScript 2.1比较JavaScript 和 Java 两者之间没有关系 V8是google开源的JavaScript引擎,用于执行JavaScript;类似JVM执行java字节码。在node.js 诞生之前,V8是内置于Chromeium中的,现在也...

weixin_41160054的博客 5515

JavaScript基础——JS简单案例

JS基础案例

m0_68794863的博客 5966

JavaScript 基础概述,简单了解JS,JS入门概述,JS基础语法

一、 JavaScript 概述 1. 什么是JavaScript 1) JS 介绍 简称JS,是一种浏览器解释型语言,嵌套在HTML文件中交给浏览器解释执行。主要用来实现网页的动态效果,用户交互及前后端的数据传输等。 2) JS 组成 核心语法 -ECMAScript 规范了JS的基本语法 浏览器对象模型 -BOM Browser Object Model,提供了一系列操作浏览器的方法 文档对...

**kwargs的博客 321

JavaScript和Node.js的关系

JavaScript和Node.js的联系与区别。

cnds123的专栏 4493

JavaScript(JS)的简单了解

JavaScript(JS)的简单了解

m0_68989458的博客 3046
上一篇: 寻找这十种人脉关系
下一篇: javascript 进阶
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值