前書き: JavaScript データ型は、プリミティブ型とオブジェクト型の 2 つのカテゴリに分類されます。 5 つのプリミティブ タイプ: 数値、文字列、ブール値、null (空)、未定義 (未定義)。オブジェクトは属性のコレクションであり、各属性は「名前と値のペア」で構成されます (値はプリミティブ値またはオブジェクトにすることができます)。 3 つの特別なオブジェクト: グローバル オブジェクト、配列、関数。 JavaScript 言語のコアでは、日付 (Date) クラス、通常 (RegExp) クラス、およびエラー (Error) クラスの 3 つの便利なクラスも定義されています。
1 つの数字
JavaScript は整数値と浮動小数点値を区別しません。 JavaScript は 10 進整数リテラル (いわゆるリテラルはプログラム内で直接使用されるデータ値です) と 16 進値 (先頭に 0x または 0X が付きます。これは文字の o ではなく数字の 0 です) を認識できます。考えてみてください。それが文字 o の場合、そうであれば、16 進数値が識別子になります。) ECMAScript 標準は 8 進数リテラルをサポートしていませんが、JavaScript の一部の実装では、8 進数形式を使用して整数 (先頭に数字 0 が付きます) を表すことができます。筆者は、IE、Chrome、FF の 3 つのブラウザで整数を表すために 8 進数を使用しています。変数の代入も問題ありません。ただし、ECMAScript6 の厳密モードでは、8 進リテラルは明示的に禁止されています。
浮動小数点リテラルを記述するには 2 つの方法があります。 ① 実数の伝統的な書き方: 整数部分、小数点、および小数部分で構成されます。 ② 指数計算方法: つまり、実数の後に文字 e または E が続き、その後に正または負の符号が続きます。 、その後に整数の指数が続きます。
1.1 四則演算のオーバーフロー
JavaScript の算術演算では、オーバーフロー、アンダーフロー、または 0 で割り切れる場合にエラーが報告されません。
オーバーフロー: 演算結果が JavaScript が表現できる数値の上限を超える場合、結果は正の無限大または負の無限大-無限大になります。無限値の動作特性も現実と一致しています。それらに基づく加算、減算、乗算、および除算の演算結果は依然として無限値です (もちろん、その符号は保持されます): 演算結果が無限である場合。ゼロに近く、JavaScript が表現できる最小値よりも小さい値がまだ小さい場合に何が起こったのか。この場合、0が返されます。負の数値がアンダーフローした場合、特別な値「負のゼロ」が返されます。負のゼロと整数のゼロは、除数を除いて本質的に等しい (厳密な等価 === を使用してテストすることもできる):
var zero = 0; //正零值 var negz = -0; //负零值 zero === negz //表达式返回值为true 1/zero === 1/negz //表达式返回值false,等价于判断正无穷大和负无穷大是否严格相等
0 で割り切れると、正の無限大または負の無限大が返されます。ただし、0 を 0 で除算すると、NaN (JavaScript の事前定義オブジェクト Number の NaN プロパティの値) が返されます。 NaN が返される状況は 4 つあります。 ① 0 を 0 で割った場合 ② 無限大を無限大で割った場合 ③ 任意の負の数に対して平方根演算を実行した場合 ④ 数値ではないオペランド、または数値に変換できないオペランドで算術演算子が使用された場合。
NaN 値には特別な点があります。それは、それ自体を含め、どの値とも等しくありません。変数 x が NaN であるかどうかを判断するには、次の 2 つの方法があります。 ① isNaN() 関数を使用する。 ② x != x を使用して、x が NaN である場合にのみ式の結果が true になる。 JavaScript にも同様の関数 isFinite() があり、パラメータが NaN、Infinity、または -Infinity でない場合に true を返します。
1.2 2 進浮動小数点数と丸め誤差
実数は無数にありますが、JavaScript が浮動小数点数の形で表現できるのは限られた数だけです。つまり、JavaScript で実数を使用する場合、それらは実数値の単なる近似表現にすぎないことがよくあります。 JavaScript は IEEE-754 浮動小数点数表現を使用します。これは、1/2、1/8、1/1024 などの分数を正確に表現できるバイナリ表現ですが、1/10、1/10 などの小数は表現できません。正確に。例:
var x = 0.3 -0.2; //x=0.09999999999999998 var y = 0.2 - 0.1; // y=0.1 x == y //false x == 0.1 //false y == 0.1 //true 0.1 == 0.1 //true var z = x + y; //z=0.19999999999999998
2 文本
2.1 字符串、字符集
字符串(string)是一组由16位值组成的不可变的有序序列,每个字符通常来自于Unicode字符集。字符串的长度(length)是其所含16位值得个数。JavaScript通过字符串类型来表示文本。注意:JavaScript中并没有表示单个字符的“字符型”。要表示一个16位值,只需将其赋值给字符串变量即可。
JavaScript采用UTF-16编码的Unicode字符集,JavaScript字符串是由一组无符号的16位值组成的序列。那些不能表示为16位的Unicode字符则遵循UTF-16编码规则——用两个16位值组成一个序列(或称作“代理项对”)表示。这意味着一个长度为2的JavaScript字符串有可能表示一个Unicode字符。注意:JavaScript定义的各式字符串的操作方法均作用于16位值,而非字符,且不会对代理项对做单独处理。书看到这里,又结合http://www.alloyteam.com/2013/12/js-calculate-the-number-of-bytes-occupied-by-a-string/上面所述,终于对Unicode字符集、UTF-8、UTF-16稍有理解。
字符串的定界符可以是单引号或者双引号。这两种形式的定界符可以嵌套,但是不能多层嵌套(比如,双引号可以包含单引号,这时单引号中不能再包含双引号了)。正如上篇所说,一个字符串值可以拆分为数行,每行必须以反斜线(\)结束,这时反斜线和行结束符都不算是字符串内容,即字符串本身并非是多行,只是写成了多行的形式。
注意:①在JavaScript中字符串是固定不变的(除非重新赋值),类似replace()和toUpperCase()的方法都返回新字符串,原字符串本身并没有变化;②字符串可以当做只读数组,除了使用charAt()方法来查询一个单一字符,也可以使用方括号的方式来访问字符串中的单个字符(16位值),例如:
s = "hello, world"; s[0] //=>"h"
2.2 エスケープ文字
エスケープ文字の意味
o NUL 文字 (u0000)
b バックスペース文字 (u0008)
t 水平タブ(u0009)
n 改行文字 (u000A)
v 垂直タブ (u000B)
f フォームフィード文字 (u000C)
r キャリッジリターン (u000D)
" 二重引用符 (u0022)
' アポストロフィまたは一重引用符 (u0027)
\バックスラッシュ(u005C)
xXX 2 桁の 16 進数 XX
で指定される Latin-1 文字
uXXXX 4桁の16進数XXXXで指定されるUnicode文字
注: 「」文字が表にリストされていない文字の前にある場合、「」文字は無視されます。たとえば、「#」と「#」は同等です。バックスラッシュには、複数行の文字列の各行の末尾にバックスラッシュを使用する役割もあることを忘れないでください。
3 ブール値
JavaScript の値はブール値に変換できます。このうち、null、unknown、0、-0、NaN、""(空文字列)の6つの値はfalse、falseに変換され、これら6つの値をすべて「false値」と呼ぶこともあります。オブジェクト (配列) を含むその他の値は true に変換され、true およびこれらの値は「true 値」と呼ばれます。注: Boolean には toString() メソッドが含まれているため、このメソッドを使用して文字列を「true」または「false」に変換できますが、他の便利なメソッドは含まれていません。以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック



