JavaScript的测试,通常是在Firefox的firebug插件中测试的。不过有时只是测试几行代码都要写一个html,再打开浏览器测试运行结果,感觉并不是很方便。

今天花了点时间做了一个简易的JS片段测试器。其实这主要是看了IronJs开源项目以后,才有了这个想法。 得益于JS在.net平台下的执行引擎IronJS的帮助,

这个测试器的实现真是不费吹灰之力。IronJS还是蛮强大的,据说能够成功编译JQuery。不过需要.net 4.0和DLR的支持,自己用无所谓了。

代码如下:

View Code

  public partial class MainWindow : Window
    {
        IronJS.Hosting.CSharp.Context ctx = new IronJS.Hosting.CSharp.Context();
        public MainWindow()
        {
            InitializeComponent();
            SetPrint();
        }

private void button1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                textBox2.Clear();
                ctx.Execute(textBox1.Text);
            }
            catch (Exception ex)
            {
                string err = ex.Message;
                while (ex.InnerException!=null)
                {
                    ex = ex.InnerException;
                    err  = "\r\n"   ex.Message;
                }
                textBox2.Text = err;
            }
        }

void SetPrint()
        {
            // Effectively the same as context.CreatePrintFunction() :-)
            var print = IronJS.Native.Utils.createHostFunction<Action<IronJS.BoxedValue>>(ctx.Environment,
                delegate(IronJS.BoxedValue str)
                {
                    textBox2.Text = str.ClrBoxed.ToString();
                });
            ctx.SetGlobal("print", print);

}
    }

程序截图:

(vs2010工程)源代码下载

以前写了个闹钟程序,不知道大家是否喜欢,反正我用着还行,可能是自己的孩子看着顺眼吧。今天闲着无事又写了个这个,我主要用来在看JS代码时,

不明白了,复制上运行下,看看结果,知道js还能这么写。希望大家能够喜欢吧!

Todo:

1、利用sharpdevelop的AvolenEdit控件实现JS语法高亮和变色。(已完成)

语法着色版下载

2、再次利用IronJS的JS解析器做个代码自动完成

3、做成JS的IDE了.....

(2和3)要看工作情况和自己的兴趣是否允许了。

更多专业前端知识,请上 【猿2048】www.mk2048.com

为自己写程序之JavsScript代码段测试器相关推荐

  1. 陈灯可重用代码段管理器(插件版最新版本:3.2;桌面版最新版本:2.3)

    [软件简介] 陈灯代码段管理器为一款个人软件作品,其主要功能是对可重用代码段进行管理,包括对代码段的入库.代码段的搜索和代码段的共享等.软件包括插件版本和桌面版本两种版本,插件版本集成在Visual ...

  2. 关于程序为什么要代码段,程序段

    分段就是把相关数据凑到一起,我们都知道计算机指令是一条一条往下进行的,在循环取指令.执行指令的操作.那么计算机如何取得下一指令的地址呢?进行分段就好办了,因为下一条指令就在往下下一个内存的位置嘛! 我 ...

  3. STM32烧写程序:ST-link V2调试下载器实物和连接方式

    ST-link V2调试下载器实物自行到淘宝上购买!!! ST-link V2调试下载器实物 使用专门的编程器/调试器,具有下载功能和调试功能,还可以和IDE结合,实现一键下载和调试. 这种接口是通过 ...

  4. C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)

    BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据 ...

  5. 程序运行时对应的内存分布(BSS段、数据段、代码段、堆、栈)关系

    参考:程序运行时对应的内存分布关系 作者:嵌入式基地(公众号) 发布时间: 2021-04-28 网址:https://mp.weixin.qq.com/s/AVDPZawSjg9HtxEm8vsFB ...

  6. 内存空间分几部分:代码段、数据段,栈,堆 (收集整理)

    1.函数代码存放在代码段.声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间. 全局变量或静态变量,放在数据段, 局部变量放在栈中, 用new产生的对象放在堆中, 内存分为4段,栈区 ...

  7. BSS段,数据段,代码段,堆内存和栈

    BSS段,数据段,代码段,堆内存和栈 作者:delnabla 日期:2010-10-26 字体大小: 小 中 大 BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的 ...

  8. BSS段、数据段、代码段、堆与栈

    BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 ...

  9. Linux中的内存段(BSS、数据段、代码段、堆、栈)

    在Linux 系统中,在运行一个程序时,程序中未初始化的全局变量会被加载到以下哪个内存段中? BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量 ...

最新文章

  1. HTTP协议详解(真的很经典)
  2. import keras 报错 ImportError: cannot import name ‘urlopen‘
  3. nslookup域名解析
  4. Jeecg-Boot 1.0 版本发布,基于SpringBoot+Mybatis+AntDesign快速开发平台
  5. 在普通java类里获取Spring管理的bean
  6. 殊途同归? 亚马逊和微软都选了云业务老大当公司CEO
  7. 计算机网络————P1 概念、组成、功能和分类
  8. 利用JS获取用户当前ip地址
  9. Unicode编码详解(一):Unicode简介及其分类
  10. n维空间的欧氏距离公式_n维欧氏空间中球的体积公式与表面积公式之间的微分关系(论文资料).pdf...
  11. 分光器光衰多少?分光器如何选购?分光器如何使用?
  12. 相机技术--摄像机720p、1080p、2mp、3mp、5mp;VGA, QHD, FHD, 2K,4K对应的分辨率分别是什么
  13. 分辨率、像素和PPI
  14. 学计算机用游戏本好吗,学设计的用什么笔记本好呢
  15. 立足自主创新,编程猫助推国内高质量编程教育普及
  16. 让你的工作更高效!快来看看如何使用内网穿透
  17. 非常感人非常激发人的潜能的信,你一定要看!
  18. RTSP流访问海康摄像头
  19. php如何获取json里的值,如何从JSON PHP正确获取值?
  20. 嵌入式计算机系统简述,嵌入式系统定义_简述嵌入式系统的定义和组成

热门文章

  1. linux 我的世界 跨平台联机,我的世界跨平台联机 PC、手机等平台数据互通
  2. 【总结】C语言实用算法系列之知识点梳理_附学生管理系统各模块代码
  3. eclipse中birt插件使用_waves教学:如何使用通道条插件在DAW中创建模拟工作流
  4. 区块链以信用为基础,所以目前在中国不可行.
  5. Python中什么是set
  6. 安卓欢迎界面和activity之间的跳转问题
  7. 让 UV4 支持STC 单片机
  8. 随机森林原理_机器学习(29):随机森林调参实战(信用卡欺诈预测)
  9. matlab subplot同时显示多幅图像
  10. 博弈-sg函数的原理和优化(hdu-1536)