资讯专栏INFORMATION COLUMN

javaScript一些基本概念

Wuv1Up / 1231人阅读

摘要:操作符包括算数操作符加号减号等,位操作符,关系操作符和相等操作符。语法此语法会导致性能下降,不建议使用。所有传递都是值的传递,没有值的自动赋予值。

1、
可一次定义多变量(,号分隔)
var message = "h1", found = false, age = 20;
3、数据类型:
5种基本数据类型 : undefined,Null,Boolean,Number,String;
1种复杂数据类型 : Object;
使用 typeof 可检测变量的数据类型
例 : Alert( typeof(message) ) // "String";
typeof 为操作符不是函数,所以可以省略 ()
typepf null // Object;
4、Undefined : 定义但未赋初值。
var message;
alert(message); // undefined
alert(age); // error
5、NUll类型: 一个空对象指针
alert(null == undefiend) // true
6、Boolean类型.
true不一定等于1,false也不一定等于0.
大小写敏感。
可对任何变量使用转型函数 Boolean。
转换规则:


if语句自动转换:
var message = "hello";
if(message) { //转为true
alert ( "value id true");
}
7、Number 类型:

* 浮点数值 
    var float Num3 = .1   // 有效,但不推荐
* e 表示指数幂
    3.125 e7 ;  // 等于 3125000 : 3.125 * 10的7次幂        
    最高精度是17位小数,计算精度不如整数。        
    例 : 0.1 + 0.2 ≠ 0.3  而是 等于 0.3000000……4。
    if (a+b == 0.3) { }      // 永远不要用float做测试
* NaN : 即非数值,是一个特殊的数值

任何数除以非数值都返回NaN,因此不影响其他代码执行。
NaN 的两个特点 :

任何涉及到NaN的操作都返回NaN,(如 NaN / 10)

NaN与任何值都不相等,包括本身。alet(NaN == NaN) ; //falseisNaN() ; 判断是否“不是数值”。

数值转换 : Number(),parseInt(),parseFloat();

对于任何类型可用第一个,后两个用于字符串;
Number()转换字符串复杂且不合理,处理整数用parseInt();处理浮点数用parserFloat();
例 : parseInt(“1234blue”); // 12348、String 类型

* 字符字面量 

/n : 换行 /t 制表 /r 回车

* 特点

不可变,只能销毁重建。

* 转为字符串

tostring() : null 和 undefined 没有此方法,要用String()方法;
简便转换方法 : 值与字符串相加 (“ ”)。
注意 : 0.9 - "0.4" = 0.5 // 隐式类型转换;
1 + “2” = "12";
9、Object 类型 : 一组数据和功能的组合
Object 类型是所有它的实例的基础,所具有的任何属性和方法同样存在更具体的对象中。每个实例都具有以下属性和方法 :

* constructor() : 构造函数,保存着用于创造当前对象的函数;
* hasOwnProperty( property ) : 检查给定属性在当前对象实例中(不是在原型中) 是否存在;
* isPropertyOf(object) : 对象是否是当前对象原型;
* toLocalString() : 返回对象的字符串表示,与地区对应;
* toString() : 返回对象的字符串表示;
* valueof() : 返回对象的字符串、数值、布尔值表示,通常与tostring()一样。 

10、操作符 包括算数操作符(加号、减号等),位操作符,关系操作符和相等操作符。

* 一元操作符

++i : i = i + 1; // 先自加再赋值

* 一元加减

该操作符对非数值应用时,会像Number()转型函数一样对值进行转换。
对对象先调用valueof和tostring方法。
可用于基本算数运算,也可以用于转换数据类型。

* 位操作符

整数的补码为本身,负数的补码为取反加一;
按位 非 (NOT) : ~ 表示,反码;
按位 与 (AND) : & 表示,同为1得1,其他为0;
按位 或 (OR) : | 表示,同为0得0,其他为1;
按位 异或 (XOR) : ^ 表示,同为0,异为1;
左移 : << 以0补位,32位;
有符号右移 : >> 保留符号位 0 : 正 1 : 负;
无符号右移 >>> 负数以绝对值二进制补码表示;

* 布尔操作符 : 非(NOT)  与(AND)   或(OR)

逻辑非(!) :
可用于任何值,无论类型都返回布尔值,先转为布尔值,再求反;
逻辑与(&) :
同真为真,其他为假;
短路操作:第一个能决定结果,后边就不用求值,如第一个为false,结果直接为false;
逻辑或(||) :同假为假,其他为真有一个操作符不是布尔值,结果不一定返回布尔值;
与逻辑与一样,短路运算;
可用短路逻辑为变量赋值避免赋null和undefined。如 : var result = (A || B) // 当A不为null,赋值A,否则为B;

* 乘性操作符

乘法 : (*)除法 : (/)求模 : (%) // 余数

* 加性操作符

5 + 5 = 10 5 + "5" = "55" "str" + 5 + 5 = "str55" "str" + (5 + 5) = "str10"

* 减性操作符 : 先进行隐式类型转换(Number()): 注意转换规则对number类型友好优先

5 - "2" = 3 5 - true = 4 5 - "" = 5 NaN - 1 = NaN

* 关系操作符 : >   <   >=   <=

比较字符串时比较的事字符编码值,例 : a 为 97 , B 为 66“B” < "a" // true "23" < 3 // true

* 相等操作符 : ==   !=   ===    !==

相等和不相等 ---- 先转换再比较全等和不全等 ---- 比较但不转换,比较数据类型

* 条件操作符(三目运算符)

A ? b : c // A为真时值为b,否则为c

* 赋值操作符 : =

= 右边的值赋给左边变量赋值复合操作符 : *= /= %= += -= <<= >>= >>>=

* 逗号操作符

一条语句执行多个操作 : var num1 = 1 , num2 = 2,num3= 3;用于赋值时,总是返回表达式最后一个值 : var num = (5,1,4,8,0) //返回011、语句

* if语句 : 先用Boolean转换

推荐使用代码块 : { }

* do - while 语句 : 后测试循环语句,循环内代码至少执行一次

let i = 0;do {i +=2} while

* while语句 : 前测试循环语句,有可能不会被执行

var i = 0;while(i<10){i += 2;}

* for语句 : var定义的变量会污染全局,之后尽量使用let
* var count = 10;

for(var i = 0;i < count;i++){alert(i);}alert(i); //10

* for-in语句 :

一种精准的迭代语句,可用来枚举对象属性,例 : for(property in expression) {} 返回的属性无序,因浏览器而异;

* label语句

可在代码中加标签,以便将来使用 ;

* break 和 continue :

break直接跳出循环,continue跳到下一次循环;

* with语句 :

将代码的作用域设置到一个特定对象中。语法 : with(expression){ } : 此语法会导致性能下降,不建议使用。

* switch语句 : 

switch(expression){ case value : statement break; default : statement}12、函数function functionName(org1,org2...){statements}

* 调用 : functionName();

可加return设置返回值;执行return后停止并立即退出,位于return后的代码永远不会执行。

* 理解参数

不介意传递的参数的种类和个数,因内部用数组来表示,函数体内可以用arguments对象来访问参数数组。命名参数只是提供便利,不是必须的,可在内部判断参数的长度完成重载。所有传递都是值的传递,没有值的自动赋予undefined值。

* 没有重载

重载:函数名相同,参数的数量和类型不同。es中定义两个同名函数,后者会覆盖前者,通过检查传入参数的种类和数量可以模仿重载。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102850.html

相关文章

  • 你需要知道面试中的10个JavaScript概念

    摘要:自我学习目前有成千上万的年轻人在学习和开发,希望获得一份工作。知道的绑定规则。知道和原型属性是什么以及它们的作用。高阶函数了解函数是中的一级对象,这意味着什么知道从另一个函数返回函数是完全合法的。了解闭包和高阶函数允许我们使用的情况。 翻译原文出处:10 JavaScript concepts you need to know for interviews 之前不是闹得沸沸扬扬的大漠穷...

    YacaToy 评论0 收藏0
  • 前端练级攻略(第二部分)

    摘要:是文档的一种表示结构。这些任务大部分都是基于它。这个实践的重点是把你在前端练级攻略第部分中学到的一些东西和结合起来。一旦你进入框架部分,你将更好地理解并使用它们。到目前为止,你一直在使用进行操作。它是在前端系统像今天这样复杂之前编写的。 本文是 前端练级攻略 第二部分,第一部分请看下面: 前端练级攻略(第一部分) 在第二部分,我们将重点学习 JavaScript 作为一种独立的语言,如...

    BWrong 评论0 收藏0
  • 基础巩固:JavaScript基础总结(基本概念篇)

    摘要:基础巩固基础总结使用已经好几年了,由于工作主要是做服务端开发,在工作中逐渐发现的使用范围原来越广泛。这里要注意,务必将基础部分掌握牢靠,磨刀不误砍柴功,只有将基础部分掌握并建立起系统的知识体系,在后面学习衍生的其他模式才能游刃有余。 基础巩固:JavaScript基础总结 使用JavaScript已经好几年了,由于工作主要是做服务端开发,在工作中逐渐发现JavaScript的使用范围原...

    YuboonaZhang 评论0 收藏0
  • 【译】前端练级攻略

    摘要:由于系统变得越来越复杂,人们提出了称为预处理器和后处理器的工具来管理复杂性。后处理器在由预处理器手写或编译后对应用更改。我之前建议的文章,,也涵盖了预处理器相关的知识。 译者:前端小智 原文:medium.freecodecamp.org/from-zero-t… medium.freecodecamp.org/from-zero-t… 我记得我刚开始学习前端开发的时候。我看到了很多文章及...

    wuyumin 评论0 收藏0
  • javascript入门教程(一):基本概念

    摘要:本文建议有基础的人看,由于内容过多,所以建议配合高级程序设计服用。一共由三部分组成,分别是最新版本是,简称,,。 本文建议有html基础的人看,由于js内容过多,所以建议配合《javascript高级程序设计》服用。 在开始前我先简单介绍一下javascript这门语言吧。 javascript诞生于1995年,主要是用来表单的验证,虽然名字里面有java,但是和java毫无关系,甚至...

    Michael_Lin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<