`

js基础研究第一天

 
阅读更多

运算数的类型

一般情况下对字符串不能进行乘法运算,所以在javascript中表达式“a”*"b"是不合法的。但是要注意对于“3”*"5"是合法的,结果是15,而不是字符串“15”,这里涉及到类型的转换的。

另外对于运算符“+”,应该特别注意,如果是对数字进行运算数执行的是加法操作,但对字符串运算数执行的是字符串的拼接操作。但如果是一个数字和一个字符串的的“+”操作,首先javascript会把数字转化成字符串,然后和另外一个字符串进行连接操作,例如:“1”+0得到的结果是“10”。

表达式和运算符

 运算符++是对他唯一的运算数进行递增操作的(如每次加1),这个运算数必须是一个变量、数组的一个元素或者兑现的一个属性。++i是前递增的运算符,即先进行运算数进行递增,然后用运算数增长后的值计算。i++,被看重后运算符增长,虽然他增加了运算数的值,但是计算时所用的值是运算数增长前的值。如果要进行递增操作的值不是数字,通过这一个过程它就业就转化成数字。

相等运算符(==)和等同运算符(===)

==运算符和===运算符用来检测两个值是否相等,他们采用了具有同一性的两个不同定义,

NaN永远不会与其他任何值等同,包括他自身。要检测一个值是否是NaN,可以使用全局函数isNan()。


下面的规则用于判断==运算符比较的两个值是否相等

1、如果两个值具有相同的类型,那么就检测他们的值,如果他们的值相同,则他们就相等。如果他们的不完全相同,则他们就不相同


2、如果两个值的类型不相同,他们任然可以相等,用下面的规则和类型转换来检测他们的相等性.

--如果一个值是null,另一个值是undefined,他们相等

--如果一个值是数字,另一个值是字符串,先把字符串转换成数字,再用转换后的值进行比较。

--如果一个值为true,将它转化为1,在进行比较。如果一个值是false,把他转化为0,再进行比较。

--如果一个值是对象,另一个值是字符串或数字,将对象转化成原始类型的值,再进行比较。可以使用对象的toString()方法或valueOf()转换,再尝试toString()的转换,但是对于Date类,则先执行toString()方法


5.5.2 in 运算符


 in运算符要求左边的运算数是一个字符串,或可以被转换成字符串,右边的运算数是一个对象或数组。如果该运算符左边的值是其右边对象的一个属性值,他返回true。例如:

var point = {x:1,y:1}; //定义一个对象

var has_x_cord = "x" in point;// Evalutes to true

var has_y_cord = "y" in point; //Evalutes to true

var has-z_cord = "z" in point ;//Evalutes to false

var ts = "toString" in point; //内部属性; evaluteate to true;


5.5.3 instanceof 运算符


 略

5.7.1 逻辑||表达式

虽然||表达式运算符常用为布尔OR运算符,但是它和&&运算符一样,行为是比较复杂的。首先他要计算第一个运算数,即它左边的表达式的值。如果这个表达式的值可以被转换成true,那么它就返回左边表达式的值。否则,它将计算第二个运算数,即位于它右边的表达式,并且返回该表达式的值


位&及位|运算

运算符&对它的整形参数柤位执行布尔AND操作。只有两个运算数种相应的位都为1,那么结果中的这一位才是1.例如,0x1234 & ox00ff = 0x 0034


运算符|对它的整形参数组位执行布尔OR操作。如果其中一个运算数种的相应位为1或者两个运算数相应位为1或俩个运算数种的相应位iwei1,那么结果中的这一个为1,例如9|10 =11


待续。。。

分享到:
评论

相关推荐

    JS.rar_javascript 日历

    这涉及到计算每月的第一天是星期几,以及一个月有多少天等逻辑。 4. **日期格式化**:JavaScript可能使用内置的`Date`对象处理日期,包括创建新的日期实例、获取日期部分(如年、月、日)以及格式化日期字符串。 5...

    7天JS逆向实战讲解教程【视频课程】下载整理.zip

    在课程的第一天,我们会介绍JS逆向工程的基础概念,包括什么是逆向工程,为什么它对开发者重要,以及JS逆向工程在哪些场景下应用广泛。此外,还会讨论一些基本的调试工具,如Chrome DevTools和Firefox Developer ...

    babylonjs源码包

    8. **相机控制**:内置了多种相机类型,包括第一人称、第三人称、自由飞行等,用户可以根据需求轻松切换或自定义相机行为。 9. **扩展性**:Babylon.js 社区活跃,拥有丰富的插件和扩展,例如粒子系统、天空盒、...

    第一阶段 第一天 server服务器

    - **可行性研究**:评估项目的可行性,包括技术、人力资源、设备、时间、资金投入等多个方面。 - **需求分析**:明确软件的功能性需求与非功能性需求。其中,非功能性需求是确保功能性需求能够正常运行的基础条件。 ...

    JavaScript模块化编程七日

    第一天:模块化基础 - 了解什么是模块化,其优点和必要性。 - 探索CommonJS(Node.js中的模块系统),如何通过`require`和`module.exports`进行模块间的通信。 - 介绍AMD(异步模块定义)模式,如RequireJS的使用...

    Three.js 入门指南pdf

    - **第1章**:介绍 Three.js 和 WebGL 的基础知识,并通过示例帮助读者完成第一个 Three.js 应用。 - **第2章**:探讨如何设置照相机,包括不同类型照相机的使用场景。 - **第3、4、5章**:详细介绍如何创建和操作...

    使用three.js制作的夜间驾驶特效.zip

    2. 相机:模拟驾驶者的视角,通常会设置为第一人称或第三人称视角,并随着车辆移动而移动。 3. 光源:为了模拟夜间环境,项目可能使用了点光源(PointLight)或方向光(DirectionalLight)来创建月光、车灯等效果。 ...

    javascript-30:Day 30天香草JS挑战

    每个子文件夹代表一天的任务,你可以逐个研究每个项目的代码,跟随教程进行实践,以加深理解和应用。 总之,参与《JavaScript30》的天香草JS挑战,不仅可以让你的JavaScript技能得到显著提升,还能培养出独立解决...

    js关于日期联动的代码

    或者使用第三方库如`moment.js`或`date-fns`进行更复杂的日期格式化。 7. **防止无限循环**: 在实现联动时,要防止因相互依赖的日期选择器导致的无限循环。例如,如果选择开始日期会影响结束日期,而结束日期又...

    七天学会NodeJS

    1. **第一天:安装与环境配置** - 学习如何在Windows、MacOS和Linux上下载并安装NodeJS。 - 了解npm(Node Package Manager)的作用,以及如何使用它来管理项目依赖。 2. **第二天:基础语法** - 掌握JavaScript...

    10DaysOf[removed]HackerRank JavaScript解决方案10天

    第一天:基础语法 JavaScript的基础包括变量声明(var, let, const)、数据类型(如字符串、数字、布尔值、null、undefined)、操作符(算术、比较、逻辑)以及控制流程(条件语句、循环)。了解这些基本元素是构建...

    10天学会ASP编程

    第一天:ASP基础 - ASP的概念:了解ASP的定义、工作原理以及它在Web开发中的角色。 - ASP环境搭建:安装IIS(Internet Information Services)服务器,配置ASP支持。 - 第一个ASP页面:创建简单的"Hello, World!...

    ga-intro-to-js:在大会上讲授Java语言入门研讨会的材料

    第一天与语言的基础有关,而第二天则与应用有关。 第一天 价值观 数字和算术 弦乐 布尔值 表达式和陈述 变数 var关键字 环境 数据结构 清单 对象 控制流 如果别的 while循环 for循环 更新变量 &&和|| 平等测试 职能...

    15天学会jquery (PDF).rar

    第一天:jQuery基础 开始学习jQuery,首先了解其安装和引入方式,包括CDN链接和本地文件引用。接着,理解jQuery的核心概念,如选择器(通用选择器、元素选择器、类选择器等)和链式操作,学习如何选取和操作DOM元素...

    十天学会ASP.NET--chm

    第一天:ASP.NET概述 在这部分内容中,我们将介绍ASP.NET的基本概念,包括它的历史、版本及其与.NET Framework的关系。还会讲解IIS(Internet Information Services)服务器的角色以及如何配置ASP.NET环境。同时,会...

    HTML5实训研究报告原创实训总结.doc

    实训流程详细规划,第一天主要是HTML5的总体介绍,包括语言的发展历程,实训的任务说明,以及sublime软件和谷歌浏览器的使用介绍。接下来几天,学生依次学习了基础的HTML结构、CSS内联和外联样式,以及JavaScript...

    day13-节后复习1.zip

    这个特定的压缩包可能包含了学习材料,特别是针对某一天(可能是课程的第13天)的复习资料。 【描述】"day13-节后复习1.zip"的描述简洁,没有提供具体的学习内容或主题,但我们可以推测这可能是一个教学资源包,...

    30天学通java web项目案例开发(第四章)源码

    在本资源中,“30天学通java web项目案例开发(第四章)源码”是一个针对初学者的Java Web项目开发教程的第四章源代码集合。这个教程旨在帮助学习者在30天内掌握Java Web开发的基础知识和实践技能。第四章通常会涉及...

    15天学会JQuery

    ### 第一章:jQuery简介 在这一章,我们将了解jQuery的基本概念,包括它的起源、目标以及为何在众多JavaScript库中选择jQuery。同时,我们会学习如何在网页中引入jQuery库,并进行首次简单的jQuery选择器实践。 ###...

Global site tag (gtag.js) - Google Analytics