js 数据类型及常用函数

简介: JavaScript 对大小写是敏感的。js中的注释同c语言相同。 变量是弱类型的,与 Java 和 C 不同,定义变量时只用 var 运算符。在使用变量前可以不声明。如var sTest = "hello ";sTest2 = sTest + "world"; 每条语句结尾的分号可有可无。1.数字 允许使用科学计数法,var fNum = 5.618e7; 8进制数以0开头,va
JavaScript 对大小写是敏感的。js中的注释同c语言相同。
变量是弱类型的,与 Java 和 C 不同,定义变量时只用 var 运算符。

在使用变量前可以不声明。如var sTest = "hello ";sTest2 = sTest + "world";

每条语句结尾的分号可有可无。

1.数字

允许使用科学计数法,var fNum = 5.618e7;
8进制数以0开头,var iNum = 070;  //070 等于十进制的 56
16进制数以0x开头,var iNum = 0x1f;  //0x1f 等于十进制的 31
注意:所有数学运算返回的都是十进制结果。

2.字符串

单双引号都可以
var sColor1 = "red";
var sColor2 = 'red';

其他类型到字符串,以double为例: var str = doubleVar.toString();

多个字符串可以用 加号 拼接。如 str3=str1+"hello"+str2;

2.1常用成员函数/变量

substring(start,end) 
下标从0开始,截取字符串为[start,end)。
split(regex)
根据正则分割字符串,返回的是字符串数组。
indexOf(text)
查找子串的位置。<0表示不存在。
length
长度,它是字符串类的成员变量,不是函数。

charCodeAt(i)

取得对应位置字符的编码。

字符串可以直接用 关系符比较,如 大于、小于、等于。规则为字典序。

2.2字符串转byte[]

js中没有char类型。

string是以utf-8编码的。可以利用String.charCodeAt(i)方法取得对应位置字符的编码。于是string转byte[]就可以这么写:

<script>
var arr=[];
var str="hi123";
//转byte[]
for(var i=0;i<str.length;i++)
	arr.push(str.charCodeAt(i));
console.log(arr);//[104, 105, 49, 50, 51]
//还原
console.log(String.fromCharCode(104, 105, 49, 50, 51));//hi123
</script>

对应的,java代码可以直接用这个byte[]:

byte arr[]={104, 105, 49, 50, 51};
String a=new String(arr);
System.out.println(a);//hi123

2.3 正则表达式

string.match()方法返回一个数组,盛放的是得到匹配的字符串。

var arr="abc1d2.3rtr 45".match(/\d+\.*\d*/g);
//返回1 2.3 45
注意match()函数的形参,它想要匹配的是整数或小数。 /regularExp/g ,后面的g不可少,表示global全局匹配。

3.布尔值

  var mark = true;

4.类型转换

typeof(obj_1);返回对象的类型。
instanceof();在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object"。ECMAScript 引入了另一个 Java 运算符instanceof 来解决这个问题。

字符串到数字有parseInt() 和 parseFloat()。只有对 String 类型调用这些方法,它们才能正确运行,对其他类型返回的都是 NaN。

5.数组

 var arr = new Array(2);
    arr[0] = i1;
    arr[1] = i2;

成员变量

length   //数组的元素数目

成员函数

toString() //返回字符串,类似java的toString()。

indexOf()  //返回元素在数组中的下标,若没有则是负数。针对string类型的元素可以直接用。

reverse()//对数组中元素逆序排列
sort() //对数组的元素进行排序。支持对自定义结构体的排序,因为它有一个重载形式,传入的是比较函数,见下:

//arr数组中盛放的结构体都有name这个字段。
function mayComparator(a,b){
	if(a.name>b.name)
		return 1;
	if(a.name == b.name)
		return 0;
	return -1;
}
arr.sort(mayComparator);

push(element) //向数组末尾追加元素

splice(index,howmany)     //删除 [index,index+howmany]这些元素
splice(index,howmany,item1,.....,itemX)     //删除 [index,index+howmany]这些元素并在删除的元素位置插入若干个元素

<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />")  //George,John,Thomas,James,Adrew,Martin
arr.splice(2,3,"William")
document.write(arr)			//George,John,William,Martin

</script>

6.对象

还可以为对象创建成员函数,见下:
若想删除对象的某个属性,可以用 delete 操作符。如 delete student.grade后,再发ajax时就没有这个字段了。
将对象转为string,可用JSON. stringify(obj)。使用场景比如websocket发送string内容。

7.==和===的区别

7.1.高级类型

高级类型是指Array,Object等。
==和===都进行“指针地址”比较。

7.2.基础类型与高级类型

==
将高级转化为基础类型,然后进行“值”比较。
===
因为类型不同,结果为false。

7.3.基础类型

js中字符串也是基础类型。
==与===都进行值比较。
示例代码:
var str1='hi';
var str2="hi";
console.log(str1==str2);//true
console.log(str1===str2);//true
console.log("*************");
var obj1={name:'xiaoMing',age:13};//false
var obj2={name:'xiaoMing',age:13};//false
console.log(obj1==obj2);
console.log(obj1===obj2);
console.log("*************");
str1='123';
var num1=123;
console.log(str1==num1);//true
console.log(str1===num1);//false
console.log("*************");

目录
相关文章
|
15天前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
2月前
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
87 32
|
1月前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
4月前
|
存储 JavaScript 前端开发
JavaScript中的数据类型以及存储上的差别
通过本文的介绍,希望您能够深入理解JavaScript中的数据类型及其存储差别,并在实际编程中灵活运用这些知识,以提高代码的性能和稳定性。
85 3
|
5月前
|
JavaScript 前端开发 Java
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
本文介绍了JavaScript中常用的函数和方法,包括通用函数、Global对象函数以及数组相关函数。详细列出了每个函数的参数、返回值及使用说明,并提供了示例代码。文章强调了函数的学习应结合源码和实践,适合JavaScript初学者和进阶开发者参考。
70 2
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
|
5月前
|
存储 JavaScript 前端开发
js中的数据类型
JavaScript 中的数据类型包括五种基本类型(String、Number、Undefined、Boolean、Null)和三种引用类型(Object、Array、Function,以及ES6新增的Symbol)。基本类型直接存储值,引用类型存储的是指向实际数据的内存地址。了解它们的区别对于掌握 JavaScript 的变量赋值和函数传参至关重要。
66 1
|
5月前
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
6月前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
6月前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
6月前
|
存储 JavaScript 前端开发
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
JavaScript 数据类型分为基本数据类型和引用数据类型。基本数据类型(如 string、number 等)具有不可变性,按值访问,存储在栈内存中。引用数据类型(如 Object、Array 等)存储在堆内存中,按引用访问,值是可变的。本文深入探讨了这两种数据类型的特性、存储方式、以及检测数据类型的两种常用方法——typeof 和 instanceof,帮助开发者更好地理解 JavaScript 内存模型和类型检测机制。
254 0
JavaScript 数据类型详解:基本类型与引用类型的区别及其检测方法
下一篇
oss创建bucket