var函数

Revit二次开发之十五 RevitNet.dll 的使用

不羁岁月 提交于 2019-12-05 14:26:30
在revit开发中,经常面临如下问题 1、不开启revit创建项目; 2、不开启revit读取rvt的数据信息等 RevitNet.dll是Autodesk 用于开启一个revit操作的基本DLL 、无需启动界面并对 Revit 进行操作。也就是使用此dll可做到无需启动Revit便可进行创建、修改、读取等等。其基本API定义如下: 主要是获取Product对象,其代码如下: using Autodesk.Revit; using Autodesk.Revit.DB; using Autodesk.RevitAddIns; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Sample { class Program { static readonly string[] Searchs = RevitProductUtility.GetAllInstalledRevitProducts().Select(x => x.InstallLocation).ToArray(); static Program

NodeJs快速入门

懵懂的女人 提交于 2019-12-05 14:09:43
NodeJs入门介绍 Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。 所以 语法还是JavaScript的语法,只不过它封装了一些类库,可以更多的事。 nodejs官网 在命令行中,可以使用node 常用命令: 1. node -v ,查看电脑安装的node版本 2. node ,进入 node 的环境,可以执行你写的js代码 3.在 node 环境下,使用ctrl+c 或者输入[.exit],退出node环境 4. node *.js ,执行某个js文件 5. cd ,进入到某个文件夹 6. pwd ,显示当前文件夹的路径 7. ls ,显示当前文件夹内的文件 node.js:称node或nodejs,可以运行在服务器端的的js平台。 前端的js后服务器端的js区别: 1.前端的js,浏览器就是解析器;服务器端的js,node.js是平台,是解析器 2.前端的js,主要的功能DOM操作;服务器端的js,主要功能是搭建服务器,提供数据 3.服务器端的js,去掉了与DOM操作的相关的内容,没有兼容性问题。 webstorm 工具支持运行js,快捷键 ctl+shift+r 退出webstrom工具运行js的平台快捷键 shift+esc NodeJs之package包 多个模块组合在一起,就形成了包(package)

JS三座大山再学习(二、作用域和闭包)

…衆ロ難τιáo~ 提交于 2019-12-05 13:39:16
原文地址 作用域 JS中有两种作用域:全局作用域|局部作用域 栗子1 console.log(name); //undefined var name = '波妞'; var like = '宗介' console.log(name); //波妞 function fun(){ console.log(name); //波妞 console.log(eat) //ReferenceError: eat is not defined (function(){ console.log(like) //宗介 var eat = '肉' })() } fun(); name定义在全局,在全局可以访问到,所以 (2) 打印能够正确打印; 在函数fun中,如果没有定义name属性,那么会到它的父作用域去找,所以 (3) 也能正确打印。 内部环境可以通过作用域链访问所有外部环境,但外部环境不能访问内部环境的任何变量和函数。类似 单向透明 ,这就是作用域链,所以 (4) 不行而 (5) 可以。 那么问题来了,为什么第一个打印是"undefined",而不是"ReferenceError: name is not defined"。原理简单的说就是JS的 变量提升 变量提升: JS在解析代码时,会将所有的声明提前到所在作用域的最前面 栗子2 console.log(name); //undefined

20个常用的JavaScript字符串方法

一个人想着一个人 提交于 2019-12-05 12:51:57
摘要: 玩转JS字符串。 原文: JS 前20个常用字符串方法及使用方式 译者:前端小智 Fundebug 经授权转载,版权归原作者所有。 本文主要介绍一些最常用的 JS 字符串函数。 1. charAt(x) charAt(x) 返回字符串中 x 位置的字符,下标从 0 开始。 //charAt(x) var myString = 'jQuery FTW!!!'; console.log(myString.charAt(7)); //output: F 2. charCodeAt(x) `charCodeAt(x)`返回字符串中`x`位置处字符的`unicode`值。 //charAt(position) var message="jquery4u" //alert "113" alert(message.charAt(1) 3. concat(v1,v2..) concat() 方法用于连接两个或多个字符串,此方法不改变现有的字符串,返回拼接后的新的字符串。 //concat(v1, v2,..) var message="Sam" var final=message.concat(" is a"," hopeless romantic.") //alerts "Sam is a hopeless romantic." alert(final) 4. fromCharcode

js中的函数提升和变量提升

守給你的承諾、 提交于 2019-12-05 11:27:00
变量提升和函数提升 :     就是将变量声明或者函数全部代码提升到当前作用域(全局作用域或函数作用域)最开始的部分。 JavaScript中函数域为最小域范围;for循环、while循环、if语句、switch语句的“{}”不是作用域。 一.变量提升:     使用var声明的变量,会提前到当前作用域的开始的位置,被声明。原位赋值。 1.所指的形式:var a = "提升";(必须有关键字“var”) 2.提升的方式:将“var a”,提升到当前作用域的顶部,a = "提升",在原型定义的位置。 3.具体代码: eg:  1. console.log( a) ----> undefined    var a = 10;    console.log(a) ----> 10  2.console.log(a);   var a = "我是全局中的变量";   console.log(a);   function fn(){     console.log(interiorA);     var interiorA = "我是函数内的变量";     console.log(interiorA)   }   fn();       ↓↓↓↓↓↓↓↓   变量提升执行顺序   var a ; //变量提升,此时只是声明,并没有赋值   console.log(a); //

js预解析

这一生的挚爱 提交于 2019-12-05 11:08:32
上面这段代码中,函数声明在函数调用下,为什么会调用成功呢? hello(); function hello(){alert("hello");} 因为js在编译阶段预解析,将上面这段代码转换成: var hello = function(){alert('hello');}; hello(); 只有函数声明才会被提升,函数表达式在预解析阶段不会被提升。 再看一个案例: var a=1; function hello(){ console.info(a); var a=2; } 执行结果为什么是undefined呢? 因为在预解析阶段,代码被转换成下面: var a=1; function hello(){ var a; console.info(a); a=2; } 所以执行结果是undefined 这就是为什么js函数中变量声明建议写在最前面: function hello(){   var a=1,b=2;   console.info(a); } 来源: https://www.cnblogs.com/fanfan-90/p/11921803.html

js代码优化

霸气de小男生 提交于 2019-12-05 11:07:30
当自调用函数需要使用外部变量时,应该作为参数传递给函数,这样函数在访问外部变量时不用进行作用域链查找了 (function(window,jQuery){   //................ })(window,jQuery); 使用单个var,在代码块开头声明变量,防止逻辑混乱、减少代码量 var a = 1,b = 2,j; 不需要每次循环都去取数组属性,这会降低性能 for (var i = 0, max = myarray.length; i < max; i++) {} 防止变量、参数为空 function( obj || {} ){obj.a=1;} var obj = obj || {}; 强制new模式,防止构造函数直接调用 function Person(name, city) { if(!(this instanceof Person)) { return new Person(name, city); } } 深拷贝对象: var deepCopy= function(source) { var result={}; for (var key in source) { result[key] = typeof source[key]===’object’? deepCopy(source[key]): source[key]; } return

一篇文章看懂JS闭包,都要2020年了,你怎么能还不懂闭包?

北战南征 提交于 2019-12-05 10:03:59
壹 ❀ 引 我觉得每一位JavaScript工作者都无法避免与闭包打交道,就算在实际开发中不使用但面试中被问及也是常态了。就我而言对于闭包的理解仅止步于一些概念,看到相关代码我知道这是个闭包,但闭包能解决哪些问题场景我了解的并不多,这也是我想整理一篇闭包的原因。我们来看一段代码,很明显这是一个闭包,那么请问闭包指代的是下方代码中的哪一部分呢?本文开始。 function outer() { let name = '听风是风'; function insider() { console.log(`欢迎来到${name}的博客`); }; return insider; }; outer()(); //欢迎来到听风是风的博客 贰 ❀ 什么是闭包? 如果在面试中被问及什么是闭包,大部分情况下得到的答复是(至少我以前是) A函数嵌套B函数,B函数使用了A函数的内部变量,且A函数返回B函数,这就是闭包 。 这段描述当然没问题,那么为了让下次面试回答的更为漂亮,就让我们从更专业的角度重新认识闭包。 1.闭包起源 闭包翻译自英文单词 closure ([ˈkloʊʒər] 倒闭,关闭,停业) ,闭包的概念最早出现在1964 年的学术期刊 《The Computer Journal》 上,由 P. J. Landin 在 《 The mechanical evaluation of

JavaScript之作用域和闭包

▼魔方 西西 提交于 2019-12-05 09:59:27
一、作用域 作用域共有两种主要的工作模型:第一种是最为普遍的,被大多数编程语言所采用的词法作用域,另外一种叫作动态作用域; JavaScript所采用的作用域模式是词法作用域。 1.词法作用域 词法作用域意味着作用域是由书写代码时函数声明的位置来决定的。编译的词法分析阶段基本能够知道全部标识符在哪里以及是如何声明的,从而能够预测在执行过程中如何对它们进行查找。 JavaScript 中有两个机制可以“欺骗”词法作用域: eval(..):可以对一段包含一个或多个声明的“代码”字符串进行演算,并借此来修改已经存在的词法作用域(在运行时) ; with:通过将一个对象的引用当作作用域来处理,将对象的属性当作作用域中的标识符来处理,从而创建了一个新的词法作用域(同样是在运行时) 。 这两个机制的副作用是引擎无法在编译时对作用域查找进行优化,因为引擎只能谨慎地认为这样的优化是无效的。使用这其中任何一个机制都将导致代码运行变慢。 2.函数作用域和块级作用域 函数作用域: 函数是 JavaScript 中最常见的作用域单元。本质上,声明在一个函数内部的变量或函数会在所处的作用域中“隐藏”起来,即函数内定于的函数和变量为该函数私有; 块级作用域: 块作用域指的是变量和函数不仅可以属于所处的作用域,也可以属于某个代码块(通常指 { .. } 内部)

十一、微信小程序-var、let、const用法详解

两盒软妹~` 提交于 2019-12-05 09:10:21
let命令 基本用法 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。 for循环的计数器,就很合适使用let命令。 for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined 上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。 下面的代码如果使用var,最后输出的是10。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log