JavaScript笔记


JavaScript中数据类型

  • number
  • string
  • boolean
  • undefined
  • object
  • null

其中基本数据类型为number,string Boolean,undefined,null

object为复杂数据类型(广义的对象)


算式运算

NaN与任何数值运算都是NaN

在实现number与number运算的情况下,和java等编译语言不同的地方是:

  • java在int数据进行除法时,会将小数部分自动省略,而JavaScript中的number进行除法时,会保留小数。
  • java中没有说过直接让两个数值进行与或运算,而在JavaScript有说让两个数值进行与或运算。对于非布尔值进行与运算,会先将其转化为布尔值,然后在运算,并返回原值;

JavaScript中与运算的规则

如果两个值都为true,返回最后一个真值,返回值类型为number;如果一真一假,返回false,返回值类型为number;如果全假的话,返回第一个假,返回值类型根据第一个假值而定。(NaN或0)

进行与运算,如果第一个值为true,直接返回第二个值,如果第一个值为false,则直接返回第一个值;进行或运算,如果第一个值为true,必然返回第一 个值,如果第一个值为false,则直接返回第二个值。

关系运算符> <

number类型数值进行> 或者 < 运算跟java中的规则一致;字符串类型数值进行对比,比较的是字符第一个字符的大小,如果第一个一样大,则进行下一个字符的对比,直到对比完或者找到大于或者小于的情况。

所以在我们比较俩个字符串的数字时,一定要记得转型对比。

console.log("123344" > +"3");   //加“+”强制转型

转义字符

在JavaScript中使用转义字符输入Unicode编码
\u + 四位编码(十六进制)

再网页中直接使用 &+#+字符编码(十进制)+;

与Java不同的是,javaScript中有“== =”全等于和 “!==”全部等于,javaScript中的 ==可以进行不同数据类型的对比, 不受数据类型的影响,而全等于考虑到了数据类型的不同情况。


prompt();函数

该函数可以弹出一个提示框,该提示框中会有一个文本框,用户可以在这个文本框中输入一段内容,该函数需要一个字符串作为参数,该字符串作为提示框的提示文字

用户输入的内容将作为函数的返回值返回,我们可以定义变量来接受这个返回值


JavaScript对象的初步认识

JavaScript对象跟java中的对象稍微有些不同,在我看在,java中的对象创建稍微严谨一些,java在创建对象之前,需要创建这个对象的类,然后通过这个类来创建相对应的对象,这一个对象的属性在创建类的同时已经封装好了,只要创建处对象,该对象就已经拥有了相应的属性;但是JavaScript稍微有点不同,JavaScript中先创建对象,然后再给对象通过点运算添加属性,这样的好处是应变能力强,能做到随时添加,但是没有封装的效果,相对来说比较乱。

JavaScript中,创建的number属性的值之间是独立的,互不影响。

var a = 123;
var b = a;
a++;
console.log("a = "+ a);
console.log("b = "+ b);

输出结果:

"a = 124"
"b = 123"

JavaScript中,创建对象,如果将两个对象联系在一起,改变其中一个变量,则会影响到另一变量。

  var obj = new Object();
  obj.name = "hzt";
  var obj2 = obj;
  obj.name = "zph";
  console.log(obj.name);
  console.log(obj2.name);

结果:

zph
zph

这就是JavaScript中基本数据类型的与引用数据类型的的区别。

JavaScript中的基本数据类型直接储存在栈内存中,对象储存在堆内存中。


对象字面量

创建一个对象

var obj = new Object();

使用字面量来创造对象

var obj = {};  //{}就是对象字面量

对象中的属性也可以是一个对象,这个跟java不同,java的对象一般把一个对象写在另一个对象里面,而JavaScript不同,类似于对象之间的嵌套但又不是嵌套,我简单的理解为一个对象拥有另一个对象,举个例子:一个人,他有一部手机,这个人是一个对象,然而这个人所拥有的手机也是一个对象,属于归属关系。


函数

函数也是一个对象,函数可以封装一些代码(功能),在需要时可以执行这些代码。

封装的代码不会立即执行,而是在函数被调用的时候执行

调用函数的语法: 函数对象();

  1. 使用构造函数创建函数
var fun = new Function("console.log('content')");

fun();  //调用函数对象,执行封装代码

结果:

“content”

我们在开发的时候基本上不使用构造函数来创造一个函数对象

  1. 使用函数声明来创造函数对象

语法:

   function 函数名(形参1,形参2,形参3){
       语句块;
   }

调用方法:

函数名(参数); //有参数要添加相对应的参数,没有参数就不写
  1. 使用函数表达式来创造函数
var 函数名 = function(形参1,形参2){
       语句块;
};

匿名函数赋值给一个对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值